jQuery 选择器

标签 jquery dom

给定以下无序列表,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>

最佳答案

行为可能未定义/不符合您的预期的两个原因:

  1. ID 应是唯一的,并且您收到的路径位于源中所需的路径之前。
  2. (在这种情况下不太可能)ID 为 expected to begin with a letter

关于jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1029926/

相关文章:

jquery - 幻灯片重新出现时再次为图层设置动画

JavaScript 数组映射不适用于 addClass

javascript - 使用 javascript 使输入类型=文本禁用或只读

jquery - 如何在父 div 内部、div 前面强制按钮。我尝试过 z-index 没有效果

javascript - 如何使用javascript添加li元素

javascript - 如何通过遍历DOM获取元素的值

javascript - 在第 N 个选择后防止复选框勾选(允许同一类别中的更多选项)

javascript - 单击按钮获取输入值

jquery - 单击超链接后显示 jquery 对话框

php - 如何从一个网页修改另一个网页的内容?