我的下面的代码似乎没问题,但我想弄清楚为什么我的警报显示为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));
});
});
我尝试使用jQuery的find()
,但每次它都返回false。难道我做错了什么?请告诉我。
#associated_order_chosen
是主要的div
更新#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>
答案 0 :(得分:0)
您的代码中应该存在上下文问题。代码中的this
引用items
参数(,即迭代中的当前元素)而不是DOM元素。您应该将this
对象缓存在each
回调的上下文之外,而是使用缓存的值。
var $e = $(this);
$.each(result, function(i,items) {
if ($e...) {
// ...
}
});