<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做到这一点。
答案 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");
}
});