jQuery选择下一个出现的某个元素

时间:2013-10-25 16:41:56

标签: jquery jquery-selectors

我选择了.someClass的某个元素,我想选择在DOM树中较低的下一个<label>元素。

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

<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 个答案:

答案 0 :(得分: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/

我希望这就是你想要的

答案 1 :(得分:0)

这是already solved(甚至是"pluginified")。

答案 2 :(得分:-1)

尝试

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

而不是body使用someClasstable的父级。

Fiddle

答案 3 :(得分:-1)

你肯定会想要使用Jquery下一个功能。我基本上问了同样的问题并得到了答案

Getting Div ID on Header Click, Accordion