1

关于使用contextJquery 选择器的一个快速问题:

我正在尝试从具有id="time". HTML 片段可以按context如下方式使用:

// An AJAX request here returns a HTML snippet "response":

var myTime = $("#time", response).text();

我这样做的原因是我希望time保留 html 中的变量response,但不希望首先将所有 html 加载到 DOM 中的开销。(这是大量的html)。

4

2 回答 2

1

从评论中我理解的是响应是<span id="time">blah blah</span>这意味着元素time本身就是根变量,这就是子查找不起作用的原因。

var response = '<span id="time">blah blah</span>';
var myTime = $(response).text(); // Or $(response).filter("#time").text();
alert(myTime)

演示:小提琴

此方法使用filter()而不是find(),区别在于:

filter()– 搜索传递的元素集

find()– 仅搜索所有元素。

于 2013-04-26T10:56:42.057 回答
0

你试过了吗?

$("#time", "<div><span id=time></span></div>")[0].id //returns 'time'

从 jQuery 源代码:

// HANDLE: $(expr, context) 
// (which is just equivalent to: $(context).find(expr)
} else {
    return this.constructor( context ).find( selector );
}

所以有效的选择器应该在上下文参数中工作。就个人而言,我更喜欢使用findto begin with,因为它使所有选择器保持相同的顺序,而不是$("second > third", "first");

于 2013-04-26T11:16:10.793 回答