Javascript jQuery-从字符串中选择元素

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);

我需要从html字符串中选择第一个表,然后选择第二个表。我知道这可以通过选择器
: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()
$()
使用的所有选择器一起工作。