简单的JQuery选择器在字符串中找不到ID

时间:2011-06-29 13:49:19

标签: jquery string

var chk = "<div id='test'>Trying</div>";

    alert($("#test",chk).html());

这个JQuery by String不是那么简单但它不起作用= /它有什么不对吗?提前谢谢!

3 个答案:

答案 0 :(得分:5)

尝试这样的事情:

var chk = "<div><span id='test'>Trying</span></div>";
alert($("#test",chk).html());

第一个参数“#test”是您的选择器(您真正想要的)。

第二个参数 chk是您的上下文(在您的查询/搜索中执行)。

答案 1 :(得分:3)

SunnyRed击中了头部的钉子。

麻烦的是,当你说:

$("#test",chk)

您正在搜索chk标记内的所有DOM元素(不包括这些元素)。很遗憾,因为该标记包含#test,所以您的搜索找不到任何内容。考虑jQuery documentation

  

默认情况下,选择器在DOM中从文档根开始执行搜索。但是,通过使用$()函数的可选第二个参数,可以为搜索提供备用上下文。

如果你用一个根级别<div>包裹你的字符串,然后尝试搜索,你会得到你想要的:

var chk = "<div><div id='test'>Trying</div></div>";
alert($("#test", chk).html());

有关实例,请参阅:http://jsfiddle.net/GpdYz/

答案 2 :(得分:1)

alert($(chk).html()); // Trying