2011-08-29 54 views
0

我試圖讓hdnCheckedPhoneNumbers中的(逗號分隔)值的字符串,取每個值,並用它做一些事情。這有效,但感覺有點骯髒。更好的jQuery語句?

$($(".hdnCheckedPhoneNumbers").val().split(",")).each(function(index, val) { 
     $(".phoneCB[data-rowNumber='" + val + "']").children().attr("checked", "checked"); 
    }); 
+0

HTTP:/ /codereview.stackexchange.com/ – Homer

回答

1

稍微優化(但可以具體通過使用用於循環,而不是被jQuery.each()進一步優化,):

1

也許這種方式....

var checkedNumbers = $(".hdnCheckedPhoneNumbers").val().split(","); 

var processCheckedNumbers = function(index, val) { 
     $(".phoneCB[data-rowNumber='" + val + "']").children().attr("checked", "checked"); 
} 

$(checkedNumbers).each(processCheckedNumbers); 
+1

是的 - 可能和我一樣好,但不應該在你的循環體中使用hdnCheckedPhoneNumbers [val]? –

+0

你應該添加'if(hdnCheckedPhoneNumbers.hasOwnProperty(val))'和'$(「input.phoneCB [data-rowNumber ='」+ val +「'」)「'''應該是'$(」input.phoneCB [ data-rowNumber ='「+ hdnCheckedPhoneNumbers [val] +」']「)' –

+0

@Rocket - if(hdnCheckedPhoneNumbers.hasOwnProperty(val))''的目的是什麼?這不是保證永遠是真的,因爲每個val將永遠是數組的索引? –