внутренний промежуток не получает ref в jQuery. Почему? - PullRequest
0 голосов
/ 22 октября 2009

У меня есть одна структура HTML:

enter code here <ul>
    <li><span>aaa</span>
        <div>
            <ul>
                <li><span>bbb</span> </li>
            </ul>
        </div>
    </li>
    <li><span>ccc</span>
        <div>
            <ul>
                <li><span>ddd</span> </li>
            </ul>
        </div>
    </li>
</ul>

теперь какой должен быть точный код для доступа

 <span>aaa</span>and <span>ccc</span>

но не span с bbb ​​и ddd ... Я использовал $ ("li span: first-child") и он работает нормально ... это обряд, я имею в виду в соответствии со стандартом ... bcoz Я думаю, что это должно ref каждый первый дочерний промежуток под любым li внутри этого HTML-файла .... какой должен быть точный код?

Ответы [ 4 ]

3 голосов
/ 22 октября 2009

Это может быть потому, что вы вкладываете li без ol / ul, li должен быть внутри ol / ul, а не внутри другого li

2 голосов
/ 22 октября 2009

Ваш HTML неправильно сформирован. Элементы li не закрыты. Это может быть причиной проблемы.

1 голос
/ 22 октября 2009

То есть вы хотите, чтобы все <span> были прямым потомком <li>, у которого есть вложенный список? Вот мой пример:

$("li:has(ul) > span")

Пояснение, шаг за шагом:

li        // find all <li>s
:has(     // which have inside them
  ul      // a <ul> tag
)         // (current context is still at the <li>
>         // now find just immediate children (not grandchildren, etc)
span      // ..which are spans

Результирующим набором теперь должен быть список <span> s, чьим родителем является <li> с потомком <ul>.

1 голос
/ 22 октября 2009

Посетите http://validator.w3.org/. Браузеры делают удивительные вещи, пытаясь создать DOM из незаконной разметки, но результаты часто не соответствуют вашим ожиданиям и противоречивы во всех браузерах.

Используйте правильную разметку - затем беспокойтесь об инструментах, которые с ней справляются неожиданным образом. См. GIGO .

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