[英]Why does my click handler only work for the first element?
我有以下代碼:
var hitarea = $("#c_" + $.fragment().category).parent().siblings('div.hitarea');
var arr = new Array();
arr.push(hitarea);
do{
hitarea = $(hitarea.parent().parent().siblings('div.hitarea'));
arr.splice(0,0,hitarea);
}while(hitarea.length > 0);
for(var i=0; i < arr.length; i++){
var element = $(arr[i]);
if(arr[i].length != 0){
element.trigger('click');
}
}
但這僅適用於第一個元素,並且不會觸發以下元素的click事件。
救命。
嘗試這個:
arr=[...]//array of elements
for(var i=0; i < arr.length; i++){
var element = $(arr[i]);
if(element.length){
element.trigger('click');
}
}
筆記:
!= 0
0-0是否是JavaScript的“假”值之一,因此只需放置變量名即可檢查它是否不為零,不為null或未定義等。 arr
已經是一個jQuery對象數組,則無需再次將其包裝在jQuery對象中(即,不要執行$(arr[i])
)。 但是,如果它是普通的DOM元素或子數組,那么上面的代碼將起作用。 if(arr[i].length != 0){
那是{錯字嗎? 如果沒有,那將解釋問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.