首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个元素视为一体

将多个元素视为一体
EN

Stack Overflow用户
提问于 2013-10-31 14:00:06
回答 3查看 168关注 0票数 0

我有一个脚本,它计算无序列表中的项目数,并将项目拆分为创建两个单独的列表,但是这个脚本运行的站点正在将其许多列表更改为定义列表,每个项目都有一个<dt><dd>元素。是否有一种方法可以找到<dt>及其子<dd>,并将它们作为一个单一元素来处理。这样我就能找到并数每一行

代码语言:javascript
复制
<dl>
  <dt>Title 1</dt><dd>Item 1</dd>
  <dt>Title 2</dt><dd>Item 2</dd>
</dl>

作为一个单一的实体?

编辑

这是当前为我的列表项目工作的脚本,作为对我试图实现的目标的一些指示。

代码语言:javascript
复制
$(document).ready(function() {
    $(function(){
    var $bigList = $('#bigList'),
    number = Math.round(($("li").size())/2),
    group;

    while((group = $bigList.find('li:lt(' + number + ')').remove()).length){
    $('<ul/>').append(group).appendTo('body');
    }
  });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-31 14:58:00

大概在下面吧,我想。您可能需要修改切片函数,以获得上半部分,而不是前半部分,并可能将ceil更改为地板(舍入而不是向上),但这是一个很好的起点。

代码语言:javascript
复制
$('#list2').append(
    $("#list1 > *").slice(0,
       Math.ceil($('#list1 dt').length/2) * 2
    )
);

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

票数 1
EN

Stack Overflow用户

发布于 2013-10-31 14:09:41

您可以使用适当的选择器来完成此操作:

代码语言:javascript
复制
$("dt + dd").length

不过,请注意,您只选择跟随一个dd的每个dt。因此,这对计数是有益的,但如果您试图应用样式或动画化dtdd,则无法实现您的预期效果。但是,只需为另一个用例做另一个选择。

票数 1
EN

Stack Overflow用户

发布于 2013-10-31 14:16:43

基本上,您需要计算dl中的特定标记,即使用getElementsByTagName()dtdd

使用以下方法:

代码语言:javascript
复制
<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>

检查这个演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19708595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档