1

我有一个带有 HTML 的字符串。我想用数据类属性中的值(如果有的话)替换类属性。这应该仅适用于 HTML 的特定标签/部分。

我已经写了一些,但希望有一个指针来完成它:

html = "<div class='hello' data-class='class-name'>Content</div><div class='123'>Content</div><div data-class="class-111"></div>";

var html_out = $('<div/>').html(html).contents();

var final_html = $(html_out).find('[data-class]').attr('class', 'new-value');

所以上面应该返回:

<div class='class-name' data-class='class-name'>Content</div><div class='123'>Content</div><div class="class-111" data-class="class-111"></div>

至于它是否维护数据类部分或将其删除,这并不重要。

关键是 HTML 字符串将包含 data-class 属性的使用,我需要用这个值覆盖 class 属性。

4

2 回答 2

4

尝试

$('div[data-class]').attr('class', function() { return $(this).data('class') });
于 2013-03-07T08:54:09.620 回答
2

好的,我想这就是你要找的 -

html_out.find('[data-class]').each(function() {
    this.attr('class', this.attr('data-class');
})

查看有关属性选择器和attr 函数的jquery 文档

于 2013-03-07T08:48:22.033 回答