如问题所述,想知道是否可以从变量构造 jQuery 对象。像这样的例子:
var data = "<div id='bird'>halo world</div>";
console.log($("#bird",$(data)));
提供的JSfiddle 链接。
$(data)
将由 构造"<div id='bird'>halo world</div>"
,但您使用错误的选择器来选择"#bird"
元素。$("#bird",$(data))
在元素的后代中搜索。但是$(data)
由于您的"#bird"
元素不是该对象的后代,因此您会得到一个空对象。如果需要选择"#bird"
元素,可以这样使用.closest():
$(data).closest("#bird")
例子:
var data = "<div id='bird'>halo world</div>"+
"<div id='otherbird'>Other halo world</div>";
console.log( $(data).closest("#bird").html() );
//=> halo world