我有一个脚本来计算无序列表中的项目数,并拆分项目以创建两个单独的列表,但是此脚本运行的站点将其大量列表更改为具有单个{{的定义列表每个项目1}}和<dt>
元素。有没有办法找到<dd>
及其子<dt>
并将它们视为单个元素。所以我可以找到并计算每一行
<dd>
作为单一实体?
修改
这是目前适用于我的列表项目的当前脚本,作为我试图实现的目标的一些迹象。
<dl>
<dt>Title 1</dt><dd>Item 1</dd>
<dt>Title 2</dt><dd>Item 2</dd>
</dl>
答案 0 :(得分:1)
您可以使用适当的选择器执行此操作:
$("dt + dd").length
但请注意,您只选择关注dd
的每个dt
。所以这对于计算是有好处的,但是如果您尝试应用样式或为dt
和dd
设置动画,它将无法满足您的期望。但是,就这个其他用例做另一个选择。
答案 1 :(得分:1)
您基本上需要使用dl
计算dt
内的特定代码,即dd
或getElementsByTagName()
。
使用以下内容:
<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
)
);