Javascript 可能的JQuery类选择器错误
我有一个ajax调用,它返回一个HTML片段。我试图在渲染之前在片段中选择一个div HTML的一个示例:Javascript 可能的JQuery类选择器错误,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一个ajax调用,它返回一个HTML片段。我试图在渲染之前在片段中选择一个div HTML的一个示例: <div class="event-detail repBy-container"> <div class="copy">.....</div> <div class="links"> .... </div> <div class="contacts"> <
<div class="event-detail repBy-container">
<div class="copy">.....</div>
<div class="links">
....
</div>
<div class="contacts">
<div class="name-brand">....</div><div class="details">...., <a href="mailto:...@....">...</a></div>
</div>
</div>
.....
....
........,
现在的问题是:
function ajaxReturn(data) {
alert($(data).find('.event-detail').length); <-- Returns 0
alert($(data).find('.copy').length); <-- Returns 1
}
函数ajaxReturn(数据){
警报($(数据).find('.event detail').length);这是预期的行为
- 您正在div下搜索
。事件详细信息
,但没有
- 您正在搜索div下的
.copy
,其中有一个
仅获取子体,而不是从当前级别获取,您需要从当前集合(即返回内容的根)获取项,如下所示:
function ajaxReturn(data) {
alert($(data).filter('.event-detail').length); //<-- Returns 1
alert($(data).find('.copy').length); //<-- Returns 1
}
function ajaxReturn(data) {
var parent = $("<div />").append(data);
alert(parent.filter('.event-detail').length); //<-- Returns 1
alert(parent.find('.copy').length); //<-- Returns 1
}
它取决于传递给ajaxReturn
函数的内容。即数据包含什么
如果它包含您引用的HTML,则这是预期行为。这是因为.find()
方法在当前上下文中搜索,而不包括它。如果示例中的外部div是数据中的外部div,则.find()
将在该分区内搜索。事件详细信息
。谢谢,这让我发疯了