使用jQuery查找文章正文

时间:2015-07-29 13:52:10

标签: javascript jquery html

我想在一组结构不同的网页上找到文章主体元素。 所有这些页面的唯一共同特性是文章body元素拥有最大数量的<p>类型的子元素。 什么是jQuery代码或选择器,允许我找到具有最大<p>子元素数的元素?

2 个答案:

答案 0 :(得分:2)

红色div是p子元素最多的那个。

<强>说明

  1. 设置一个新的计数器变量等于零(i)
  2. 遍历.section元素并获取p元素的长度
  3. 将此号码设为data-p属性为当前元素
  4. 如果此值大于计数器,请将计数器设置为此数字
  5. 使用最终i来应用.article
  6. 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

JSFiddle