我对jquery如何搜索DOM感到有点困惑。 它是从根节点中选择,类似于XPath / selector,还是从当前的位置选择,无论它们在哪里,类似于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过滤,我可以将事件处理程序附加到select元素,但如果我尝试直接查询元素,则永远不会附加事件处理程序。 / p>
例如,这有效:
$('#contentSection').change('.plotSelector', function(e)
但这些不是:
$('#first').change(function(e) ...
$('.selector').change(function(e) ...
有人可以解释原因吗?有没有办法从根中选择任何元素的根?
使用jquery 2.1.1
答案 0 :(得分:0)
是的,选择器跨DOM工作(http://api.jquery.com/category/selectors/)
评论中提供的小提琴有效,您是否检查过控制台是否有错误,可能是javascript没有完全运行。
答案 1 :(得分:0)
有没有办法从根中选择任何地方的任何元素 DOM?
只要从- (void)program:(SCNProgram *)program handleError:(NSError *)error
{
NSLog(@"SCNProgram error %@", error);
}
开始,标准的javascript方法 all 就会从根目录中选择:
document.
document.getElementById('');
document.getElementsByClassName('');
document.getElementsByTagName('');
document.querySelector('');