Javascript jQuery-从字符串中选择元素
我需要从html字符串中选择第一个表,然后选择第二个表。我知道这可以通过选择器Javascript jQuery-从字符串中选择元素,javascript,jquery,Javascript,Jquery,我需要从html字符串中选择第一个表,然后选择第二个表。我知道这可以通过选择器:eq(0)和:eq(1)实现,但是 var firstTable = $("table", "<table></table>").length; var firstTable=$(“table”,”).length; firstTable==0。为什么?当您将第二个参数传递给jQuery()(又称$())时,您指定了一个上下文来搜索。就是这个, $(selector, context);
:eq(0)
和:eq(1)
实现,但是
var firstTable = $("table", "<table></table>").length;
var firstTable=$(“table”,”).length;
firstTable==0
。为什么?当您将第二个参数传递给jQuery()
(又称$()
)时,您指定了一个上下文来搜索。就是这个,
$(selector, context);
相当于:
$(context).find(selector);
因此,您可以像这样重写您的“断开的”代码,以显示为什么它找不到表
元素:
var firstTable = $("<table></table>").find("table").length;
var firstTable=$(“”)。查找(“表”)。长度;
…因为只选择子体元素。当您将第二个参数传递给
jQuery()
(aka$()
)时,您指定了一个要在其中搜索的上下文。就是这个,
$(selector, context);
相当于:
$(context).find(selector);
因此,您可以像这样重写您的“断开的”代码,以显示为什么它找不到表
元素:
var firstTable = $("<table></table>").find("table").length;
var firstTable=$(“”)。查找(“表”)。长度;
…因为只选择子体元素。尝试这样来说明问题:
var firstTable = $("table", "<div><table></table></div>").length;
// returns 1
var firstTable=$(“table”,”).length;
//返回1
搜索是在上下文参数中进行的。尝试以下方式来说明问题:
var firstTable = $("table", "<div><table></table></div>").length;
// returns 1
var firstTable=$(“table”,”).length;
//返回1
搜索是在上下文参数中进行的。Hm,我通常不使用
context
-样式选择,但是您能够传入HTML字符串这一点肯定是正确的,不管怎样,当您意识到$(选择器,上下文)
等同于$(上下文)。查找(选择器)
。是时候编辑我的答案了+1@Matt,我也不怎么用;我也更喜欢x.find(y)
.Hm的流程,我通常不使用context
-样式选择,但是您可以传递HTML字符串,这是绝对正确的,不管怎样,当您意识到$(选择器,上下文)
等同于$(上下文).find(选择器)
时,这是有意义的。是时候编辑我的答案了+1@Matt,我也不怎么用;我也喜欢x.find(y)
@Radek:我不知道你的意思.find()
与$()
的所有选择器一起工作。@Radek:我不知道你的意思.find()
与$()
使用的所有选择器一起工作。