【发布时间】:2016-03-12 20:29:45
【问题描述】:
试图通过替换列表项中的文本来包装/断开列表项并添加类,例如下面的示例?
原始HTML:
<div class="widget-content">
<ul>
<li><span class="label">textone</span> Test Content</li>
<li><span class="label">texttwo</span> Test Content</li>
<li><span class="label">texttwo</span> Test Content</li>
<li><span class="label">texttwo</span> Test Content</li>
<li><span class="label">textone</span> Test Content</li>
<li><span class="label">textone</span> Test Content</li>
</ul>
</div>
我试图制作这样的输出:
<div class="widget-content">
<ul class="textone">
<li><span class="label"> textone</span> Test Content</li>
<li><span class="label"> textone</span> Test Content</li>
<li><span class="label"> textone</span> Test Content</li>
</ul> <!-- Break part 1 -->
<ul class="texttwo">
<!-- Break part 2 -->
<li><span class="label"> texttwo</span> Test Content</li>
<li><span class="label"> texttwo</span> Test Content</li>
<li><span class="label"> texttwo</span> Test Content</li>
</ul>
</div>
我正在尝试将其拆分为多个组,并通过替换 class="label" 中的文本将类添加到新父 ul(输出 Html 示例)
这是我尝试过的:
var arr = []; // array to store `li` elements
var widget = $(".widget-content");
$(".widget-content li").each(function(index, el) {
var html = el.outerHTML;
// number at `label` text
var curr = $(".label", this).text().trim().slice(-1);
if (arr[curr - 1]) {
arr[curr - 1].push(html)
} else {
arr[curr - 1] = [html];
}
});
widget.html(""); // remove existing `html`
$.each(arr, function(key, val) {
var li = val.join("");
$(".widget-content").append($("<ul/>", {
html: li,
"class":$(li).eq(0).find(".label").text().trim()
}))
})
不工作,请检查jsfiddle。
提前致谢。
【问题讨论】:
-
那么,您是想按每三项、一半或其他方式打破清单吗?不是很清楚
-
你确定它不是span的内容,因为它看起来是这样的
-
我想要像第二个 HTML 示例一样输出,通过替换文本内容从
span class="label"获取类。检查第二个 HTML 示例。我想要。
标签: javascript jquery html replace