我正在尝试根据遇到的某种条件执行某些操作。但是jquery代码似乎没有用。
HTML:
<p class="Mycondition">
<span><b>»</b></span>
<span id="nav"><a href="#" id="lnkMycondition">Overview</a>
<span class="separator">
<b>»</b>
</span>
</span>
<span><b>MyName</b></span>
</p>
<div class="prepend-1 span-22">
<table class="hor" title="">
<tbody>
<tr>
<td>abc</td><td>1</td>
</tr>
</tbody></table>
</div>
Jquery:
$('table').each(function () {
if ($('#Mycondition').children(':contains("MyName")')) {
// do stuff
}
});
答案 0 :(得分:1)
您正在使用ID选择器按类名选择元素,children
也返回始终为true
的jQuery对象。
尝试使用has
方法:
$('table')
.has('.Mycondition:has(:contains(MyName))') // filtering tables
.find('tr:last') // finding last tr descendants
.addClass('Myclass'); // and adding classes
或者:
$('table').filter(function () {
return $('.Mycondition', this)
.children(':contains("MyName")').length;
}).find('tr:last').addClass('Myclass');
更新
如果你有几个Mycondition
个元素,并且想要为下一个兄弟姐妹添加课程,你可以尝试:
$('p.Mycondition:has(:contains(MyName))')
.next('table')
.find('tr:last') // finding last tr descendants
.addClass('Myclass'); // and adding classes
$(function() {
if ( $('p.Mycondition').children(':contains("MyName")').length ) {
$('table').find('tr:last').addClass('myclass');
}
});