Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可能的JQuery类选择器错误_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 可能的JQuery类选择器错误

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"> <

我有一个ajax调用,它返回一个HTML片段。我试图在渲染之前在片段中选择一个div

HTML的一个示例:

<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()
将在该分区内搜索
。事件详细信息

谢谢,这让我发疯了