将多个元素视为一个元素

时间:2013-10-31 14:00:07

标签: jquery html

我有一个脚本来计算无序列表中的项目数,并拆分项目以创建两个单独的列表,但是此脚本运行的站点将其大量列表更改为具有单个{{的定义列表每个项目1}}和<dt>元素。有没有办法找到<dd>及其子<dt>并将它们视为单个元素。所以我可以找到并计算每一行

<dd>

作为单一实体?

修改

这是目前适用于我的列表项目的当前脚本,作为我试图实现的目标的一些迹象。

<dl>
  <dt>Title 1</dt><dd>Item 1</dd>
  <dt>Title 2</dt><dd>Item 2</dd>
</dl>

3 个答案:

答案 0 :(得分:1)

您可以使用适当的选择器执行此操作:

$("dt + dd").length

但请注意,您只选择关注dd的每个dt。所以这对于计算是有好处的,但是如果您尝试应用样式或为dtdd设置动画,它将无法满足您的期望。但是,就这个其他用例做另一个选择。

答案 1 :(得分:1)

您基本上需要使用dl计算dt内的特定代码,即ddgetElementsByTagName()

使用以下内容:

<dl id=dl1>
  <dt>Title 1</dt><dd>Item 1</dd>
  <dt>Title 2</dt><dd>Item 2</dd>
  <dt>Title 3</dt><dd>Item 3</dd>
  <dt>Title 4</dt><dd>Item 4</dd>
</dl>
<button onClick="alert(document.getElementById('dl1').getElementsByTagName('dt').length);">count_items</button>

选中 demo

答案 2 :(得分:1)

我想,

下面的内容。您可能想要使用切片函数来获得后半部分而不是上半部分并且可能将ceil更改为一个底部(向下舍入而不是向上)但这是一个很好的起点。

$('#list2').append(
    $("#list1 > *").slice(0,
       Math.ceil($('#list1 dt').length/2) * 2
    )
);

http://jsfiddle.net/uKmJn/4/