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
设置为thatli
,因此不能使用$(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");
}