我想在一组结构不同的网页上找到文章主体元素。
所有这些页面的唯一共同特性是文章body元素拥有最大数量的<p>
类型的子元素。
什么是jQuery代码或选择器,允许我找到具有最大<p>
子元素数的元素?
答案 0 :(得分:2)
红色div是p
子元素最多的那个。
<强>说明强>
.section
元素并获取p
元素的长度data-p
属性为当前元素i
来应用.article
类
var i = 0;
$('.section').each(function() {
var that = $(this);
var p = that.children('p').length;
if (p > i) {
i = p;
}
that.attr('data-p', p);
});
$('[data-p=' + i + ']').addClass('article');
.section {
border:1px solid #ccc;
margin:10px;
}
.article { background-color:red }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="section">
<p>A paragraph</p>
</div>
<div class="section">
<p>A paragraph</p>
<p>A paragraph</p>
<p>A paragraph</p>
</div>
<div class="section">
<p>A paragraph</p>
<p>A paragraph</p><p>A paragraph</p>
<p>A paragraph</p>
<p>A paragraph</p>
</div>
<div class="section">
<p>A paragraph</p>
<p>A paragraph</p>
</div>
答案 1 :(得分:1)
以下是解决此问题的一种方法。
Private Sub CommandButton1_Click()
Dim itemExistResults As Boolean
Dim myarray()
Dim intItem As Long
myarray = Application.Transpose(Sheet1.Range("a2:a1000"))
For intItem = 0 To ListBox1.ListCount - 1
If IsInArray(ListBox1.List(intItem), myarray) Then
Else
ListBox1.RemoveItem intItem
End If
Next
End Sub
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = UBound(Filter(arr, stringToBeFound)) > -1
End Function