我有以下代码可以正常工作。
<div id="testdiv"></div>
<table>
<tr>
<td class="test" title="two">2</td>
<td class="test" title="one">1</td>
<td class="test" title="three">3</td>
</tr>
</table>
<script>
if(jQuery("td[title='three']").length == 0) {
jQuery('#testdiv').append('<p>no td</p>')
}
else
{
jQuery('#testdiv').append('<p>yes td</p>')
}
</script>
但是我想说是否存在一个或三个标题。所以我尝试编辑脚本的第一行看起来像这样。
if(jQuery("td[title='three']").length == 0 || jQuery("td[title='one']").length == 0) {
但由于某种原因,似乎三个人和一个人都需要在那里才能使我的陈述成为现实?
但是如果我替换了||与&amp;&amp;它的工作方式我想要它吗?为什么&amp;&amp;&amp;像||一样工作在这还是我在这里遗漏了什么?
例如答案 0 :(得分:2)
||
表示“包容性或”。使用||
时,如果title=three
不存在或 title=one
不存在,则显示no td
。也就是说,如果一个存在,它仍然会说no td
。如果您按照自己的方式使用||
,则两者都需要存在。如果你改变条件,我认为你可能会更有意义:
if(jQuery("td[title='three']").length > 0
|| jQuery("td[title='one']".length > 0
) {
jQuery('#testdiv').append('<p>yes td</p>')
}
else
{
jQuery('#testdiv').append('<p>no td</p>')
}
答案 1 :(得分:2)
||
为OR,&&
为AND,因此如果您需要两个条件,则必须使用&&
,但您可以将其设为有点短。我方便使用$
,但您可以使用jQuery
替代:
var exists = $('td[title=one],td[title=three]').length;
$('#testdiv').append('<p>'+ (exists ? 'yes' : 'no') +' td</p>');