2011-09-15 41 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);