根据ul选择li元素

时间:2016-08-31 11:38:28

标签: javascript jquery

我如何选择第二个ul li元素,我有这个结构: 的 HTML

<ul>
       <li></li>
       <ul>
           <li>I want to select this</li>
      </ul>
</ul>

5 个答案:

答案 0 :(得分:6)

首先,您的HTML无效。您不能将Outer::Nested作为另一个ul的孩子。它必须在ul之内。此外,li中的文字也必须在ul内。

li

然后在jQuery中选择它,你可以使用:

<ul>
    <li>
        <ul>
            <li>I want to select this</li>
        </ul>
    </li>
</ul>

您也可以使用不太严格:$('ul > li > ul > li:first'); ,具体取决于您需要遵守定义的HTML结构的严格程度。

答案 1 :(得分:0)

您提供的结构不正确,子<ul>标记应放在<li>标记内。 然后结构就像

<ul class="ul">
    <li></li>
    <li>
        <ul>
            <li>I want to select this </li>
        </ul>
    </li>
</ul>

然后你可以使用jquery作为

来获得那个孩子<ul>
$(".ul li ul");

希望这会有所帮助。

答案 2 :(得分:0)

首先,您必须向父级ul:

添加一个类或ID
<ul class="root">
    <li></li>
    <ul>
        I want to select this <li></li>
    </ul>
</ul>

然后,您选择选择第二个,因为它将始终是第二个(索引1):

$(".root").find("li").eq(1)

或者您向<li>添加了一个课程:

<ul class="root">
    <li></li>
    <ul>
        I want to select this <li class="myLi"></li>
    </ul>
</ul>

然后

$(".root").find(".myLi")

答案 3 :(得分:0)

尝试使用多个选项的此代码段。

&#13;
&#13;
console.log($('ul > ul > li:eq(0)').text());
//OR
console.log($('ul').find('ul > li:eq(0)').text());
//OR
console.log($('ul').children('ul').find('li:eq(0)').text());
//OR
console.log($('ul > ul').find('li:eq(0)').text());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul><b>First ul</b>
      <li>First li</li>
      <ul> <b>Second ul</b>
          <li>First li in second ul</li>
      </ul>
</ul>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

您可以使用querySelector来执行此操作。请查看以下示例。

&#13;
&#13;
git-resolve-conflict() {
  STRATEGY="$1"
  FILE_PATH="$2"

  if [ -z "$FILE_PATH" ] || [ -z "$STRATEGY" ]; then
    echo "Usage:   git-resolve-conflict <strategy> <file>"
    echo ""
    echo "Example: git-resolve-conflict --ours package.json"
    echo "Example: git-resolve-conflict --union package.json"
    echo "Example: git-resolve-conflict --theirs package.json"
    return
  fi

  git show :1:"$FILE_PATH" > ./tmp.common
  git show :2:"$FILE_PATH" > ./tmp.ours
  git show :3:"$FILE_PATH" > ./tmp.theirs

  git merge-file "$STRATEGY" -p ./tmp.ours ./tmp.common ./tmp.theirs > "$FILE_PATH"
  git add "$FILE_PATH"

  rm ./tmp.common
  rm ./tmp.ours
  rm ./tmp.theirs
}
&#13;
var li = document.querySelector('ul ul li');

console.log(li.innerHTML);
&#13;
&#13;
&#13;