首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery‘jQuery’的问题

jQuery‘jQuery’的问题
EN

Stack Overflow用户
提问于 2014-01-05 22:36:00
回答 4查看 88关注 0票数 0

我不知道我做错了什么,但是只有我的剧本的前半部分被取走了。我尝试过各种组合,一次只能得到一个if语句。

代码语言:javascript
运行
复制
if (!$('#LocalDelivery').is(":checked")) {
    $('#datepicker').attr("value", "");
    $('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#LocalDate').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 
}    
else
{
if (!$('#StandardShip').is(":checked")) {
    $('#LocalDate').attr("value", "");
    $('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#datepicker').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));      
}
}

谢谢。

编辑:为了澄清,我理解“其他”指的是其中一个或另一个。这里的问题是,即使满足第二个if语句的条件,它也不会执行。我只能得到一个反应,如果一次状态使用上述代码或任何类似的变化,我已经尝试过。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-05 22:47:40

试着:

代码语言:javascript
运行
复制
if ($('#LocalDelivery').is(":checked") == false) {
    $('#datepicker').attr("value", "");
    $('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#LocalDate').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 
}    
if ($('#StandardShip').is(":checked") == false) {
    $('#LocalDate').attr("value", "");
    $('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#datepicker').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 

}

您还可以使用.is(":checked")更改.attr("checked","checked")

编辑:--我刚刚注意到,您试图在同一个元素#datepicker中实现两个特定的值,这一定是导致您的第一个条件不被选中的原因。

我的意思是,当两个复选框都没有选中时,您将尝试在一个元素#datepicker中放置两个值。

上面的意思是,您的代码的逻辑是wrong.You,相反,它只能有一个复选框,并执行以下操作:

代码语言:javascript
运行
复制
 if ($('#LocalDelivery').is(":checked") == false) {
        $('#datepicker').attr("value", "");
        $('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
        $('#LocalDate').attr('name',
        $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 
    } else {
        $('#LocalDate').attr("value", "");
        $('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
        $('#datepicker').attr('name',
        $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 

    }
票数 2
EN

Stack Overflow用户

发布于 2014-01-05 22:36:56

试一试

代码语言:javascript
运行
复制
if (!$('#LocalDelivery').is(":checked")) {
    $('#datepicker').attr("value", "");
    $('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#LocalDate').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 
}    
if (!$('#StandardShip').is(":checked")) {
    $('#LocalDate').attr("value", "");
    $('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
    $('#datepicker').attr('name',
    $('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name')); 

}

如果您正在使用else,那么如果第一个if返回false,那么第二个false将被执行,所以您所拥有的就是您应该期望的。第一个if返回true,因此第二个被忽略。

票数 2
EN

Stack Overflow用户

发布于 2014-01-05 22:38:37

这就是它应该如何运作的。如果前半部分为true,则不会执行else块。每次只执行一个块。永远不要两者兼得

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20940124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档