给定以下无序列表,JQuery 选择器 $("#root #2")
选择:
/ul/li/ul[@id='root']/li/ul[@id='1']/li/ul[@id='2']
而我希望它选择较短的路径:
/ul/li/ul[@id='root']/li/ul[@id='2']
有人有什么想法吗?
<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>
最佳答案
行为可能未定义/不符合您的预期的两个原因:
- ID 应是唯一的,并且您收到的路径位于源中所需的路径之前。
- (在这种情况下不太可能)ID 为 expected to begin with a letter
关于jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1029926/