0

我选择了一些元素,.someClass并且我想选择<label>出现在 DOM 树中较低位置的下一个元素。

在这两个元素之间可以是其他任何东西,例如:

<input class="someClass" />
<p>asdfasdf</p>
<div></div>
<table>
    <tr>
        <td>
            <label>SOMETHING</label>
        </td>
    </tr>
</table>

我的脚本:

 $(".question").each(function (index, value) { 
     vargroupNumber = ++index;
     $(":radio", this)
     .attr("name", "group" + groupNumber)
     .each(function (index, value) {        
         $(this)
         .removeAttr('checked')
         .attr("id", "id" + groupNumber + index)
         .next('label') 
         .‌​attr("for", "id" + groupNumber + index); 
     }); 
 });

我想为此选择并设置一些东西<label>

4

4 回答 4

0

已经解决了(甚至“插件化”)。

于 2013-10-26T01:44:54.823 回答
0

你可以通过递归来做到这一点这里是代码

var elem = $('.someClass');

findlabel(elem)

function findlabel(elem) {

if (elem.prop('tagName') == 'LABEL') {
    elem.text('yahoo');
    //do what you want to do
} else if (!elem.is(':empty')) {

    var notfound = 1;
    elem.find('*').each(function () {

        if ($(this).prop('tagName') == 'LABEL') {
            $(this).text('yahoo');
            //do what you want to do
            notfound = 0;
            return false;
        }

    });

    if (notfound == 1) {
        elem = elem.next();
        findlabel(elem);
    }

} else {
    elem = elem.next();
    findlabel(elem);
}
}

这是工作示例:- http://jsfiddle.net/LLkdA/

我希望这是你想要的

于 2013-10-25T23:15:25.143 回答
-1

尝试

$(".someClass").parent("body").find("label");

而不是使用andbody的父级。someClasstable

小提琴

于 2013-10-25T16:45:42.283 回答
-1

你肯定会想要使用 Jquery 的下一个函数。我问了基本相同的问题并得到了答案

在标题单击时获取 Div ID,手风琴

于 2013-10-25T19:59:12.420 回答