jQuery,p:父选择器返回的元素太多
我目前正在学习jQueryAPI,特别是jQuery,p:父选择器返回的元素太多,jquery,Jquery,我目前正在学习jQueryAPI,特别是:parent选择器 这是我的html和jQuery代码 <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <p id="empty-element">&
:parent
选择器
这是我的html和jQuery代码
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p id="empty-element"><p>
<p id="with-space"> </p>
<p id="with-text">hello</p>
<script type="text/javascript" src="../jquery-3.2.1.js"></script>
<script type="text/javascript">
var $pElementWhoAreThemselvesParentElement = jQuery('p:parent');
</script>
</body>
</html>
在此处插入标题
您好
var$pelementwharethemselvesparentelement=jQuery('p:parent');
我的理解是p:parent
选择所有本身是父元素的p
元素
我希望返回带有id=“with space
和id=“with text”
的p
元素,但是,从下面的屏幕截图中可以看到,选择器p:parent
返回了额外的p
元素
我想知道,为什么会发生这种情况?是我做错了什么,还是我对
:parent
选择器的理解不正确?这是因为您没有正确关闭第一个p
标记
<p id="empty-element"><p>
缺少了结束标记,该标记在
DOM
中创建了一个新的p
元素,这是一个很好的捕获。我在玩这个,有点挠头,没有注意到结束missing@charlietfl我也这么做了:)非常感谢你帮助@Sushanth——:)对OP(@Thor)的一般性评论使用p:not(:empty)
将是一个更好的选择,因为它将是一个官方选择器,而不是jQuery扩展。@gabykag.Petrioli非常感谢您提供的提示。jQuery确实提到,在可能的情况下,使用本机css选择器更有效。我们肯定会采纳您的建议:)