2012-01-04 26 views
0
var s = '<button class=​"add_friend_action btn success">​abc​</button>'; 

如何爲此添加「mini」類?如果我console.log(s),它將恢復正常。給定一個字符串,我如何使用JQuery向它添加一個類?

+2

你想獲取一個改變的字符串或一個實際的元素(或jQuery對象)? – pimvdb 2012-01-04 19:58:38

+0

$(s).addClass('mini')'起作用,但不會修改's'。您需要將其保存到變量s = $(s).addClass('mini')'。 – 2012-01-04 20:06:40

回答

3

我向你保證,$(s).addClass('mini')工作得很好。試試這個:在這個意義上

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

$(S).addClass( '小')不工作...當我CONSOLE.LOG(S),它返回到正常

這是因爲字符串是不可變的,你需要輸出$(s)的html到一個新的字符串來獲得添加的類。

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

這實際上與字符串不可變有關。 *代碼中的任何部分都不是用來改變字符串的,所以不可變的字符串最好是切線相關的。 – meagar 2012-01-04 20:13:32

+0

我想,但他期待他的原始字符串變量已被操縱,哪些不會發生。 – JaredMcAteer 2012-01-04 21:11:16

1

jQuery是用來操縱元素,這些設置之後已經是DOM的一部分,因爲「S」是,在這一點上只是一個字符串,jQuery將無法看到它可以有班級的東西。

所以有幾種不同的方法可以完成這個任務,最簡單的方法是給你一個可以用來定位它的屬性(或者只是使用那個屬性)和你的文檔準備好(或者在創建該元素之後,如果它不在初始DOM完成時)例如:

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

希望這有助於您!

+0

或者只是做馬特鮑爾說的。 :) – Ken 2012-01-04 20:02:17

0

試試這個:

var bt = $("<button/>").addClass("add_friend_action btn success mini").text("abc"); 
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。

相關問題