3

http://jsfiddle.net/r4KL9/

这应该用相应的数据更改属性替换所有类。

所以如果我有:

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

...我希望它会回来

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

我的代码更改了其中一个(按钮上的那个),但没有更改另一个。

我究竟做错了什么?

谢谢你的帮助。

--

显然我也需要发布 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 回答