2012-07-30 85 views
1

如何在querySelector中使用> p > a父类> querySelector中的子选择器

<div id="container"> 
    <p> 
     <a href="#">Link</a> 
    </p> 
</div> 

<script type="text/javascript">  
console.log(document.getElementById("container").querySelector("> p > a")); 
</script> 

SyntaxError: An invalid or illegal string was specified

+1

您想将jQuery代码转换为纯JS吗?是吗? – 2012-07-30 10:07:34

+0

[当使用querySelectorAll时,是否有方法可以引用上下文节点的直接子节点,而不使用ID?](http://stackoverflow.com/questions/11440725/when-using-queryselectorall-is-there -a-way-reference-the-immediate-children) – 2012-07-30 10:10:05

+0

@ fabricio-matte:是 – anjanesh 2012-07-30 10:16:03

回答

1

这是导致>是阻止你。如果你打算使用querySelector,你也可以通过这种方式获得容器,而不是使用getElementById

document.querySelector("#container > p > a") 
+0

这只是一个例子,我想。第一行说明了这个问题:“我如何让'> p>在querySelector中工作?”。 – 2012-07-30 10:12:42

+0

那么,如果查询字面意思,它不会工作,因为你不能使用'>',并且查询选择器语法没有引用self(如果你可以做'_self>我猜你必须回到'childNodes'? – Utkanos 2012-07-30 10:14:49

+1

或者等待'findAll'被执行。请参阅链接[重复问题](http://stackoverflow.com/questions/) 11440725 /时,使用-queryselectorall - 有 - -A-方式 - 参考最直接的子女)。 – 2012-07-30 10:17:15