JQuery选择器

mys*_*mic 2 jquery dom

给定以下无序列表,JQuery选择器$("#root #2")选择:

/ul/li/ul[@id='root']/li/ul[@id='1']/li/ul[@id='2']
Run Code Online (Sandbox Code Playgroud)

而我本以为它会选择较短的路径:

/ul/li/ul[@id='root']/li/ul[@id='2']
Run Code Online (Sandbox Code Playgroud)

任何想法?

<ul>
    <li>root
        <ul id="root">
            <li>1
                <ul id="1">
                    <li>2
                        <ul id="2"> <!--*selecting this*-->
                            <li>3<ul id="3"></ul></li>          
                            <li>4<ul id="4"></ul></li>
                        </ul>
                    </li>
                    <li>3<ul id="3"></ul></li>
                </ul>   
            <li>2
                <ul id="2"> <!-- *expecting this* -->                   
                    <li>3
                        <ul id="3"> 
                            <li>4<ul id="4"></ul></li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li>3<ul id="3"></ul></li>
            <li>4<ul id="4"></ul></li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Mat*_*pel 10

行为可能未定义/未达到预期的两个原因:

  1. ID应该是唯一的,并且您收到的路径位于源中所需的路径之前.
  2. (在这种情况下不太可能)ID 预计以字母开头