给定一个字符串,如何使用JQuery向其添加类?

时间:2012-01-04 19:56:55

标签: javascript jquery

var s = '<button class=​"add_friend_action btn success">​abc​</button>';

如何为此添加“迷你”类?

$(s).addClass('mini')不起作用......当我console.log(s)时,它会恢复正常。

5 个答案:

答案 0 :(得分:3)

我向你保证,$(s).addClass('mini')工作正常。试试这个:

var s = '<button class=​"add_friend_action btn success">​abc​</button>';
var $temp = $(s).addClass('mini');
console.log($temp);

答案 1 :(得分:1)

  

$(s).addClass('mini')不起作用...当我在console.log(s)时,它恢复正常

那是因为字符串是不可变的,你需要将$(s)的html输出到一个新字符串以获得添加的类。

$('<div>').append($(s).addClass('mini')).html();

答案 2 :(得分:1)

jQuery在这个意义上用于在元素已经是DOM的一部分之后进行操作,并且因为's'在这一点上只是一个字符串,所以jQuery不会将它视为可以拥有类的东西。

所以有几种不同的方法可以实现这一点,最简单的方法是给你串起一个属性,你可以用来定位它(或者只是使用那里的那个)并在你的doc准备就绪(或者在创建此元素后,如果它不在初始DOM完成时),例如:

$('elementTargetName').addClass('mini');

希望这有帮助!

答案 3 :(得分:1)

如果您想更改字符串本身,这将是一种方式:http://jsfiddle.net/AHH5G/1/

var s = '<button class="add_friend_action btn success">abc</button>';

s = $(s).addClass("mini").wrap("<div>").parent().html();

基本上,你解析它,添加一个类,然后通过包装它并在包装元素上调用.html()来获取“外部”HTML。

答案 4 :(得分:0)

试试这个:

var bt = $("<button/>").addClass("add_friend_action btn success mini").text("abc");