Я выбираю некоторый элемент с .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>
.
Это уже было решено (и даже "подключено").
вы можете сделать это с помощью Recursion, вот код
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/
я надеюсь, что это то, что вы хотите
Определенно вам захочется использовать Jquery следующую функцию. Я задал в основном тот же вопрос и получил свой ответ
Пытаться
$(".someClass").parent("body").find("label");
Вместо body
используйте любой родительский someClass
и table
.