我需要这个代码的选择器:
<div class="panel-heading BWHeadingForSection">
<a style="text-decoration:none" href="#faq-cat-1-sub-2" data-parent="#accordion-cat-2" data-toggle="collapse" tabindex="90">
<i class="fa fa-truck fa-lg"></i>
UPS Deutschland
<span class="pull-right">
<i class="glyphicon glyphicon-plus"></i>
</span>
</a>
</div>
我试过了:
$('div.BWHeadingForSection a[href~="#faq-cat-1-sub-'+globalcarriernumber+'"]').on("click", function(){
count++;
if(count%2==0){
$("#faq-cat-1-sub-"+globalcarriernumber).slideToggle();
//why doesn't this selector work?
//if ( $(this+">span i").hasClass('plus') ) {
// $(this+">span i").removeClass('plus').addClass('minus');
// }
//this selector work's, at least it enters the if -block
if ( $('div.BWHeadingForSection a[href~="#faq-cat-1-sub-'+globalcarriernumber+'"]>span i').hasClass('plus') ) {
$('div.BWHeadingForSection a[href~="#faq-cat-1-sub-'+globalcarriernumber+'"]>span i').removeClass('glyphicon glyphicon-plus').addClass('glyphicon glyphicon-minus');
}
}else{
$("#faq-cat-1-sub-"+globalcarriernumber).hide();
}
});
相关行是“$(this +”&gt; span i“)”和/或“$('div.BWHeadingForSection a [href~ =”#faq-cat-1-sub-'+ globalcarriernumber +'“] &gt; span i')“,需要一些调整。我必须用“减号”替换“加号”(“”)。
如果我使用FireBug调试器,我会得到“$('div.BWHeadingForSection a [href~ =”#faq-cat-1-sub-'+ globalcarriernumber +'“]&gt; span i')”,它会去进入那个if-block,但符号仍然是一样的。如果我使用“$(this +”&gt; span i“)”我得到(当我在它上面时):“#faq-cat-1-sub-2”,但它没有进入if-block。 / p>
...谢谢
答案 0 :(得分:1)
首先,你在这里混合类型。函数$(...)接受对象(DOM节点或jQuery对象)或选择器字符串,但不接受两者的串联。
最好尝试$(this).find('span i')
。
据我所知,在您的代码段中,您将找到的元素包含css类&#39; glyphicon&#39;和&#39; glyphicon-plus&#39;,但没有课程&#39;加&#39;。所以你可能无法删除它。也许你想删除&#39; glyphicon-plus&#39;并添加&#39; glyphicon-minus&#39;?