我正在使用jquery和nodejs在一个非常古老的网页上进行一些过滤,我想选择b
包裹的p
元素。我的意思是只包含p
没有文字的那些。
我想要匹配的内容
<p><b>Some text</b></p>
我不想与之匹配
<p>Some other text and some other elements <a>link</a><b>Some text</b>
and some more text of the parent p
</p>
你知道我可以选择第一个被包裹的元素而不是第二个吗?是否有任何选择器可以选择它?
答案 0 :(得分:1)
您可以使用filter
方法:
$('p > b').filter(function() {
return $(this.parentNode) // get the p element
.contents() // get all the child nodes
.not(this) // exclude the current `b` element
.length === 0;
});
答案 1 :(得分:1)
尝试使用PRIMARY> db.compliance_name.aggregate([{'$match': {'audit_time': {'$lte': new Date(2015, 11, 24, 23, 59, 59), '$gt': new Date(2015, 1, 1, 0, 0)}}}, {'$group': {'SID': {'$sum': 1}, '_id': {'policy_id': '$policy_ids', 'day': {'$dateToString': {'date': '$audit_time', 'format': '%Y-%m-%d'}}}}}])
{ "_id" : { "policy_id" : [ "384509a-9ccc-4305-8678-b80b1d5795c" ], "day" : "2015-11-24" }, "SID" : 1462 }
选择器
:first-child
&#13;
alert($(">b:first-child", "p").text())
&#13;
答案 2 :(得分:0)
不确定。你看起来像这样吗?
<强> HTML 强>
<p>Some other text and some other elements <a>link</a><b>Some text</b>
and some more text of the parent p</p>
<p><b>Some text</b></p>
<p>Some other text and some other elements <a>link</a><b>Some text</b>
以及父p的其他一些文本
<强> CSS 强>
p b:first-child:nth-of-type(1)
{
font-size:30px;
}
答案 3 :(得分:0)
使用substring()
检查html()
的前3个字母是否等于<b>
。
$("p").each(function() {
if ($(this).html().substring(0, 3) == "<b>") {
// Do whatever
}
});
如此JSFiddle Demo所示。