0

我有下面的代码可以正常工作。

    <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) {

但出于某种原因,似乎三个和一个都需要在那里才能使我的陈述成为真实?

但是如果我替换 || 与 && 它按我想要的方式工作?为什么 && 像 || 一样工作 在这里还是我在这里遗漏了什么?

参见小提琴例如

4

2 回答 2

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>')
    }
于 2013-01-29T01:26:42.307 回答
2

||is OR, &&is AND 所以如果你需要同时满足这两个条件,你必须使用&&,但你可以把它缩短一点。我使用$是为了方便,但您可以替换为jQuery

var exists = $('td[title=one],td[title=three]').length;
$('#testdiv').append('<p>'+ (exists ? 'yes' : 'no') +' td</p>');
于 2013-01-29T01:29:32.867 回答