jquery - 将元素包裹在div中并根据标签添加类

标签 jquery

这是我的标记,它是从 CMS 生成的,我根本无法用它做太多事情。

<div id="wrapper">
<dl>
    <dt>
        <label>Awesomeness<span class="required"> *</span></label>
    </dt>
    <dd>Something here</dd>

    <dt>
        <label>Label Here</label>
    </dt>
    <dd>Something here</dd>
</dl>

<dl>
    <dt>
        <label>Awesomeness<span class="required"> *</span></label>
    </dt>
    <dd>Something here</dd>

    <dt>
        <label>Label Here</label>
    </dt>
    <dd>Something here</dd>

    <dt>
        <label>Here is another label<span class="required"> *</span></label>
    </dt>
    <dd>Something here</dd>
</dl>
</div>

我想在每个 dt 和 dd 周围包裹一个 div。我还希望 div 有一个标签类,用连字符或下划线替换空格。

看看第一个 dl,我希望它看起来是这样的。

    <dl>
    <div class="awesomness">
        <dt>
            <label>Awesomeness<span class="required"> *</span></label>
        </dt>
        <dd>Something here</dd>
    </div>

    <div class="label-here">
        <dt>
            <label>Label Here</label>
        </dt>
        <dd>Something here</dd>
    </div>
</dl>

这就是我得到的。它每隔一个 dt/dd 对包裹一个 div。我还没有向 div 添加类名。

jQuery('#wrapper dl').each(function(){
    jQuery(this).addClass('testing');
});

var dts = jQuery("dt");
for(var i=0; i<dts.length;){
    i += dts.eq(i).nextUntil('dt').andSelf().wrapAll('<div />').length;
}

最佳答案

$('dl').each(function() {
  $(this).children('dt').each(function() {
     var $dt = $(this),
         $dd = $dt.next('dd');

     if($dd.length) {
        $dt.add($dd).wrapAll('<div class="' + $dt.children('label').contents().first().text() + '">');
     }
  });
});

哦,它还没有经过测试,但我现在就会。应该接近它。

http://www.jsfiddle.net/AKpv2/

我觉得不错。

关于jquery - 将元素包裹在div中并根据标签添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739011/

相关文章:

javascript - 使用 selectBoxIt JQuery 插件时如何检测选项更改?

jQuery 可点击文本

javascript - 显示带有警报的 JSON 数组的数据

jQuery 动画高度,为什么我的 div 从左边开始动画?

jquery - ajaxStart、ajaxStop 仅在 Firefox 中正确触发,而不是 chrome 或 ie

javascript - 如何设置图像路径的样式

javascript - Galleria slider 从左-右到上-下

javascript - 通过 PHP 参数将变量传递给 AJAX 函数

javascript - 将字符串转换为 Javascript 对象以在 jqTree 中使用

javascript - 如何在使用find jquery时计算它穿过的元素数量