0

我有点困惑 jquery 如何通过 DOM 进行搜索。它是从根节点中选择,类似于 XPath / 选择器,还是从当前无论它们在哪里,类似于 XPath // 选择器?

我有以下设置:

<body>
    <div id="contentSection">
    //A bunch of nested DIVs follow
           <div id="parentDIV">
                <span>Selector1</span>
                <select class="selector" id="first">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>                
                </select>

                <span>Selector2</span>
                <select class="selector" id="second">
                    <option value="A">A</option>
                    <option value="B">B</option>
                    <option value="C">C</option>                
                </select>
          </div>
    </div>
    <div id="someOtherDIVs> </div>
    <div id="someOtherDIVs> </div>
  </body>

现在,如果我尝试先选择内容部分,然后按类或 id 过滤,我可以将事件处理程序附加到选择元素,但如果我尝试直接查询元素,则永远不会附加事件处理程序。

例如,这有效:

$('#contentSection').change('.plotSelector', function(e)

但这些不会:

$('#first').change(function(e) ... 
$('.selector').change(function(e) ...

有人可以解释为什么吗?有没有办法从根中选择 DOM 中的任何元素?

使用 jQuery 2.1.1

4

2 回答 2

0

有没有办法从根中选择 DOM 中的任何元素?

只要从 开始document.,标准的javascript方法都是从根开始选择的:

  • document.getElementById('');
  • document.getElementsByClassName('');
  • document.getElementsByTagName('');
  • document.querySelector('');
  • document.querySelectorAll('');
于 2016-11-29T17:27:24.740 回答
0

是的,选择器跨 DOM 工作(http://api.jquery.com/category/selectors/

评论中提供的小提琴工作,你检查你的控制台是否有错误,也许 javascript 没有完全运行。

于 2016-11-29T17:18:49.597 回答