Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么==和!=奇怪的逻辑发生了吗? if($('ul[role=“abc”]li').hasClass('active')){ if($(this.find('a').attr('href')!='#tab bbb'){//这里有问题 警报(“bbb处于活动状态”); } }_Jquery - Fatal编程技术网

Jquery 为什么==和!=奇怪的逻辑发生了吗? if($('ul[role=“abc”]li').hasClass('active')){ if($(this.find('a').attr('href')!='#tab bbb'){//这里有问题 警报(“bbb处于活动状态”); } }

Jquery 为什么==和!=奇怪的逻辑发生了吗? if($('ul[role=“abc”]li').hasClass('active')){ if($(this.find('a').attr('href')!='#tab bbb'){//这里有问题 警报(“bbb处于活动状态”); } },jquery,Jquery,从上面的代码中,请参见注释掉这里的问题 假设代码应该是if($(this).find('a').attr('href')=='tab bbb'),那么只会弹出警报,对吗?但是当我使用==时,它无法弹出警报 为什么我将其更改为“!=”符号,那么只会弹出警报?如果第一个只是测试li中是否有活动的类。但是它没有将this设置为thatli,因此不能使用$(this.find()来查找其中的内容 您可以将所有这些组合到一个选择器中: <ul role="abc"> <li class

从上面的代码中,请参见注释掉这里的问题

假设代码应该是
if($(this).find('a').attr('href')=='tab bbb')
,那么只会弹出警报,对吗?但是当我使用
==
时,它无法弹出警报


为什么我将其更改为“!=”符号,那么只会弹出警报?

如果第一个
只是测试
li
中是否有
活动的
类。但是它没有将
this
设置为that
li
,因此不能使用
$(this.find()
来查找其中的内容

您可以将所有这些组合到一个选择器中:

<ul role="abc">
<li class role="presentation"><a href="#tab-aaa" data-toggle="tab">aaa </a></li>
<li class="active" role="presentation"><a href="#tab-bbb" data-toggle="tab">bbb </a></li>
<li class role="presentation"><a href="#tab-ccc" data-toggle="tab">ccc </a></li>
</ul>

<script type="text/javascript">
if ($('ul[role="abc"] li').hasClass('active')){
    if($(this).find('a').attr('href') != '#tab-bbb') { //problem here
        alert ("bbb is active");
    }
}
</script>
由于不能使用$(这个),我围绕代码工作,最终得出了这个解决方案,它工作了

if ($("ul[role='abc'] li.active a[href='#tab-bbb']").length != 0) {
    alert("bbb is active");
}

这是代码中的窗口<代码>$(this).find('a')
始终查找页面上的第一个链接。还有,打开,我明白了。谢谢你的指导。我可以知道原因吗。长度!=0?
.length
返回与选择器匹配的元素数。如果有活动bbb,则长度至少为1。
var href4 = $('ul[role="abc"] li.active a').attr('href');
if (href4 == "#tab-bbb"){
    alert ("bbb is active");
}