-1

我正在尝试根据满足的特定条件执行某些操作。但是 jquery 代码似乎不起作用。

HTML:

      <p class="Mycondition">
           <span><b>»</b></span>&nbsp;
           <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>

查询:

$('table').each(function () {

        if ($('#Mycondition').children(':contains("MyName")')) {
            // do stuff
        }
    });
4

1 回答 1

1

您正在使用 ID 选择器按类名选择元素,还children返回一个始终为 true.

尝试使用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');
    }
});

http://jsfiddle.net/AH5KY/

于 2013-03-14T23:28:09.180 回答