我们当前的购物车不允许我们通过他们的软件将某些州排除在免费送货范围之外,因此我尝试编写一个脚本来在输入某个州时删除免费送货部分。
我已经研究了几个小时,但似乎无法在网上或通过测试找到答案。任何能够为我指明正确方向的人都将是我的英雄。我对 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/