Jquery遍历问题

时间:2013-12-13 12:37:52

标签: jquery traversal

<tr>
   <td class="vb">
        <b>NAME:<span class="formvalidation"> *</span></b>
   </td>
   <td class="vb">
    <span dir="none">
        <input name="xyz" type="text" maxlength="255" id="fc95c5086638_ff3_new_ctl00_ctl00_TextField" title="NAME" class="long spellcheck-true"><br>
        <span class="formvalidation">
            <span role="alert">You must specify a value for this required field.</span><br>
        </span>
    </span>
</td>
</tr>

<tr>
    <td class="vb">
       <b>NAME:<span class="formvalidation"> *</span></b></td><td class="vb">
       <span dir="none">
        <input name="abc" type="text" maxlength="255" id="fc95c5086638_ff3_new_ctl00_ctl00_TextField" title="NAME" class="long spellcheck-true"><br>
       </span>
    </td>
</tr>

... ....

问题

有一些<td>包含<span dir='none'>,其中有两个孩子<input><span> 并且有一些<td>包含<span dir='none'>,其中只有一个孩子<input> 我想将类添加到有{两个孩子的<input>元素 任何人都可以帮助我如何使用jquery做到这一点。

1 个答案:

答案 0 :(得分:1)

1)使用属性span迭代dir="none",如

$("td span[dir='none']").each(function () {
});

2)现在让它的孩子成为input元素

var spa = $(this).find('input');

3)现在检查它的长度,如果它有2则再迭代那些input元素并为它们添加一个新类。

if (spa.length == 2) {
    spa.each(function () {
        $(this).addClass('newClass');
    });
}

最后,

$("td span[dir='none']").each(function () {
    var spa = $(this).find('input');
    if (spa.length == 2) {
        spa.each(function () {
            $(this).addClass('newClass');
        });
    }
});

根据您的意见,

$("span[dir='none']").each(function () {     
    if($(this).children("span").hasClass("formvalidation")) { 
        $(this).children("input").addClass("newClass"); 
    } 
});