Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 即使类存在,也显示false的警报_Javascript_Jquery - Fatal编程技术网

Javascript 即使类存在,也显示false的警报

Javascript 即使类存在,也显示false的警报,javascript,jquery,Javascript,Jquery,我的以下代码似乎正常,但我正在试图找出我的警报显示为false的原因: $.each(result, function(i,items) { alert($(this).parent().closest("#associated_order_chosen .chosen-drop ul").hasClass('chosen-results')); $(this).parent().find("#associated_order_chosen ul.chosen-results")

我的以下代码似乎正常,但我正在试图找出我的警报显示为false的原因:

$.each(result, function(i,items) {
    alert($(this).parent().closest("#associated_order_chosen .chosen-drop ul").hasClass('chosen-results'));
    $(this).parent().find("#associated_order_chosen ul.chosen-results").append("<li id=\"items" + items.orderID + "\" class=\"active-result\" style=\"\"> " + items.orderunique + " </li>");
    //$select.append($("<option />").val(items.orderID).text(items.orderunique));
  });   
});

代码中应该存在上下文问题。代码中的这一项引用了argumentie中的项。迭代中的当前元素不是DOM元素。您应该在每个回调的上下文之外缓存this对象,并改用缓存的值

var $e = $(this);
$.each(result, function(i,items) {
    if ($e...) {
      // ...
    }  
});

使用“inside”简化字符串,这样就不必转义。如果没有看到HTML,很难说,但是如果jQuery告诉您匹配该选择器的最近元素没有您要查找的类,将jQuery选择器的结果放在一个var中,并使用调试器控制台手动调用.hasClass'selected-results'——我想说的是,您的代码警报行是一个复合语句,您可以通过将其分解为一系列更简单的代码行来简化自己我可以创建fiddle,但我不知道如何添加json
var $e = $(this);
$.each(result, function(i,items) {
    if ($e...) {
      // ...
    }  
});