jquery - 仅当所有条件均为 true 时才删除元素

标签 jquery

我们当前的购物车不允许我们通过他们的软件将某些州排除在免费送货范围之外,因此我尝试编写一个脚本来在输入某个州时删除免费送货部分。

我已经研究了几个小时,但似乎无法在网上或通过测试找到答案。任何能够为我指明正确方向的人都将是我的英雄。我对 jQuery、JavaScript 等都很陌生,所以如果这是一个愚蠢的简单问题,请原谅我。

<div>
<div>HONOLULU, <span id="state">OK</span> 96819</div>
<ul>
    <li>$0.00 - Free Shipping</li>
    <li>$16.39 - UPS Ground</li>
    <li>$21.50 - UPS 2nd Day Air®</li>
    <li>$36.39 - UPS Next Day Air®</li>
    <li>$0.77 - First Class Mail</li>
    <li>$6.26 - Priority Mail</li>
</ul>

$(document).ready(function () {

if ($('#state:contains("HI" || "AK")')); {
    $('li:contains("$0.00")').remove();

} });

当你改变<li>$0.00 - Free Shipping</li>时对于任何其他数字,它都会像应该那样出现在列表中,但无论我在 <span id="state"> 中处于什么状态,如果有<li>$0.00 - Free Shipping</li>在列表中它被删除。

根据我所做的所有研究,我的代码似乎是正确的,但它不起作用。 Here's the Fiddle .

最佳答案

您的代码几乎没有问题。首先,丢失 if 语句中的 ;

应该是:

if(condition){
    // code
}

其次,你不能这样使用 || 。你需要这样做:

$('#state:contains("HI"),#state:contains("AK")')

最后,执行 if($jQueryObject) 并不是您想要的。这永远是真的。您想要检查.length

所以,应该是这样的:

if ($('#state:contains("HI"),#state:contains("AK")').length) {
    $('li:contains("$0.00")').remove();
}

关于jquery - 仅当所有条件均为 true 时才删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796014/

相关文章:

javascript - 单击事件不会在 ajax 加载的对象上触发

javascript - HTML : load thumbnail image and full image faster

javascript - 以更好的方式从数组生成 html

javascript - jQuery - 使用 html5 数据属性选择构建对象数组

javascript - Jquery 循环和递增

javascript - bootstrap 4 的 bootstrap-datetimepicker

javascript - 全宽菜单 JavaScript 选择器

javascript - 从外部更改 svg 选项

jquery - 弹出 div 以填充整个浏览器的宽度和高度

javascript - 检查元素是否被点击或 hasClass