Как получить доступ к диапазону напрямую, используя jQuery - PullRequest
0 голосов
/ 22 октября 2009

Я хочу знать, как получить доступ к этому [span class = "myclass"] в нижеприведенной html структуре.

        <ul>
    <li class="first">
      <span class="myclass"></span>
      <div class="xx">

        <span></span>
        ........
          </div>
   <li >
      <span class="myclass"></span>
      <div class="xx">

        <span></span>
         ........
      </div>
     </ul>

Здесь мне нужно написать одну функцию в [span class = "myclass"], но я не могу сделать это, используя $ (". Myclass") [У меня есть несколько проблем] Я просто хочу получить прямой доступ к самому диапазону. Как сделать это ..?

РЕДАКТИРОВАТЬ : sln by phoenix работает нормально ... но давайте скажем (насколько мне известно) структура

  <li >
      <span class="myclass"></span>
      <div class="xx">
        <li>
        <span></span>
       </li>
         ........
      </div>
   </ul>

так почему промежуток внутри 2-го li (который находится под div) не получает ссылку, это потому, что они не находятся на одном уровне ... если мне нужно получить к ним доступ, мне нужно сделать что-то вроде

enter code here

$ ("li"). Next (". Xx"). Find (li span: first-child) .. или что-то еще есть? Благодарю.

Ответы [ 2 ]

4 голосов
/ 22 октября 2009
$("li span.myclass")

РЕДАКТИРОВАТЬ : Хорошо, тогда возможно с

$("li span:first") //EDIT: Don't do that. See below.

очевидно: первый останавливается после первого попадания . Итак: первый ребенок - это путь.

, который выберет первый диапазон в каждом элементе li. Но это может быть сложно, если у вас есть другие li-элементы с интервалами внутри ...

РЕДАКТИРОВАТЬ : Если вы не можете использовать класс, который у вас уже есть, возможно, поможет назначение дополнительного класса?

<span class="myclass newClass"></span>
...
var spans = $("li span.newClass");

EDIT : Как Феникс указал

$("li span:first-child")

возвращает список со всеми элементами span, которые являются первым дочерним элементом li-элемента. Я не знаю, рассматривает ли jQuery текстовые узлы как дочерние узлы. Таким образом, если у вас есть пробел между и , это можно считать первым ребенком. Поэтому проверьте, есть ли у вас какие-либо пробелы между вашими элементами, кроме разрывов строк.

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

Если span - первый ребенок, тогда вы можете использовать

первый-ребенок

селектор

$("li span:first-child");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...