3

http://jsfiddle.net/r4KL9/

これにより、すべてのクラスが対応するデータ変更属性に置き換えられます。

だから私が持っていたとしたら:

<div class="hello" data-change="new-class">

...私はそれが戻ってくることを期待しています

<div class="new-class" data-change="new-class">

私のコードはそれらの1つ(ボタン上のもの)を変更しますが、他のものは変更しません。

私は何を間違っていますか?

助けてくれてありがとう。

--

どうやら、JS Fiddle コードも投稿する必要があるようです。

var str = '<div class="original-class" data-change="new-class">Hello</div><div class="class-123"><input type="button" class="start-class" data-change="any-new-class" value="Click Me"></div>';

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

$('[data-change]', html).attr('class', function() { return $(this).data('change') });

alert( $(html).parent().html() );
4

2 に答える 2

2
var html = $('<div/>').html(str).find('[data-change]').attr('class', function () {
    return $(this).data('change');
}).end().html();

alert(html);

http://jsfiddle.net/n8zMN/

于 2013-03-07T19:51:14.957 に答える
1

これを試して:

$('[data-change]', html).attr('class', function() { return $(this).attr('data-change') });

編集:

var html = $(str);
html.filter('[data-change]').attr('class', function() { return $(this).data('change') });

うまくいくと思います:http://jsfiddle.net/r4KL9/2/

于 2013-03-07T19:49:57.610 に答える