字符串到jQuery对象,替换属性然后再返回字符串(参见JS Fiddle)

时间:2013-03-07 19:46:23

标签: javascript jquery

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() );

2 个答案:

答案 0 :(得分:2)

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

alert(html);

http://jsfiddle.net/n8zMN/

答案 1 :(得分: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/