1

HTMLを含む文字列があります。class 属性を data-class 属性の値に置き換えたい (存在する場合)。これは、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

OK、これはあなたが探しているものだと思います -

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

属性セレクターとattr 関数に関する jquery ドキュメントをご覧ください。

于 2013-03-07T08:48:22.033 に答える