<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>
从上面的代码中,请参阅//problem here
那里的评论
据说代码应该是if($(this).find('a').attr('href') == '#tab-bbb')
然后只会弹出警报吗?但是当我使用==
时,它无法弹出警报。
为什么我将其更改为“!=”符号然后才会弹出警报?
答案 0 :(得分:1)
第一个if
只是测试li
的任何是否具有active
类。但它并没有将this
设置为li
,因此您无法使用$(this).find()
来查找其中的内容。
您可以将这一切组合到一个选择器中:
if ($("ul[role='abc'] li.active a[href='#tab-bbb']").length != 0) {
alert("bbb is active");
}
答案 1 :(得分:0)
既然不能使用$(this),我就可以解决这个问题,最终解决了这个问题,并且它可以工作。
var href4 = $('ul[role="abc"] li.active a').attr('href');
if (href4 == "#tab-bbb"){
alert ("bbb is active");
}