JQuery Sub Selector вопрос - PullRequest
       6

JQuery Sub Selector вопрос

5 голосов
/ 11 августа 2009

мой HTML

<div id="x">
  <div id="x1">
    some text
    <div>other text</div>
  </div>
  <div id="x2">just text</div>
<div>

мой звонок

У меня есть этот элемент, который может быть любым селектором jquery, 1 или более элементов:

var x = $("#x");

теперь мне НУЖНО (это плагин, который будет открывать внутренние элементы, такие как вкладки) для навигации только по первым элементам DIV, а не по его дочерним элементам Я пытаюсь ...

$.each($($("div"), x), function() {
  alert($(this).html());
});

показывает: 1. некоторый текстовый текст 2. другой текст 3. просто текст

$.each($($("div"), x).siblings(), function() {
  alert($(this).html());
});

показывает: 1. просто текст 2. некоторый текстовый текст

это самое приблизительное, но мне нужно в правильном порядке. любое предложение ? спасибо

пс. потому что это плагин, я не могу этого сделать.

$("#x", "div....")

Мне нужно сделать это

#(newselector, x)

Ответы [ 3 ]

10 голосов
/ 11 августа 2009

Если вы не можете использовать $("#x > div"), потому что он должен работать со всеми выбранными вами селекторами, тогда предполагается, что вы определили этот конкретный селектор для переменной x:

var x = $('#x');

// this will select only the direct div children of x whatever the x is
x.children('div');
1 голос
/ 11 августа 2009

Этот метод даст вам весь внутренний текст div:

x.children('div').each(function() {
  alert($(this).text());
});

Если вам не нужен весь текст, объединенный из нескольких дочерних элементов div, вы можете получить доступ только к прямому текстовому узлу каждого из них:

x.children('div').each(function() {
  alert(this.childNodes[0].nodeValue);
});

Примечание: предполагается, что x является элементом Jquery, определенным как var x = $('#x').

1 голос
/ 11 августа 2009

Использование:

$("#x > div")

как ваш селектор - он выберет только прямых потомков div с идентификатором x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...