2011-09-15 74 views
0
message = "<span>prefix text</span> some more text"; // comes down like this 
message = $("<div></div>").append(message); 
message.filter("span:first").addClass("prefix"); 
$("#messages").append(message); 

message.html()顯示跨度在此操作後沒有類,以及在查看dom源代碼時在IE中的開發者模式。addClass未應用

$(message).addClass("test"); //does not work either 

我對此不甚瞭解? TY。

+0

我不知道你是否注意到附加消息,以元素#消息它缺少引號''' – Jorge

+0

在你的實際腳本中,'message'已經是一個jQuery對象了嗎? – morewry

回答

4

使用.find方法,而不是.filter

message.find("span:first").addClass("prefix"); 
+0

...以及它的價值,我總是混合find()和filter() – Blazemonger

+0

過濾器和查找之間的區別:http://forum.jquery.com/topic/find-vs-filter – Nivas

+0

這是值得的:-) –

0

整理了一下,然後再試一次:

var addon = "<span>prefix text</span> some more text"; 
var message = $("<div></div>").append(addon); 

message.find("span:first").addClass("prefix"); 
$("#messages").append(message); 

$(message).addClass("test"); // < What is the purpose of this? 
0
var msgtext = "<span>prefix text</span> some more text", 
    message = $("<div></div>").append(msgtext); 

message.find("span:first-child").addClass("prefix"); 

$("#messages").append(message);