警告显示false,即使类存在

alert showing false even the class exists

本文关键字:存在 显示 false 警告      更新时间:2023-09-26

我下面的代码看起来不错,但我想弄清楚为什么我的警报显示为假:

$.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));
  });   
});

我尝试使用jQuery的find(),但每次它都返回我假。我做错了什么吗?请让我知道。

#associated_order_chosen为主div

Update # 1

这里是HTML代码

<div class="controls">
    <select data-rel="chosen" data-placeholder="Please choose one" id="associated_order" class="passitem" style="width: 200px; display: none;" name="associated_order">
        <option value=""></option>
    </select><div class="chosen-container chosen-container-single" style="width: 200px;" title="" id="associated_order_chosen"><a tabindex="-1" class="chosen-single chosen-default"><span>Please choose one</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"></ul></div></div>
  </div>

您的代码中应该存在上下文问题。代码中的this是指items参数(ie)。迭代中的当前元素)不是DOM元素。您应该在each回调的上下文中缓存this对象,而使用缓存的值。

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