我使用以下脚本来迭代对象(我不知道哪一个最好用,请告诉我哪一个是最好的):
- var days = {Sunday: 0,Monday: 1,Tuesday: 2,Wednesday: 3,Thursday: 4,Friday: 5,Saturday: 6};
- $.each(days,function(key,value){
- $('#days').append('<li>' + key + '(' + value + ')</li>');
- });
- for(var key in days){
- $('#days').append('<li>' + key + '(' + days[key] + ')</li>');
- }
解决方法
无论哪种方式,你应该缓存该选择器:
- var elem = $( '#days' );
- $.each(days,value){
- elem.append('<li>'+key+'('+value+')</li>');
- });
在这种情况下,.each()会更好.图案更清洁.
使用for循环,你需要使用obj.hasOwnProperty(key),这样你就不会通过继承的属性进行挖掘…这会增加另一层缩进:
- var elem = $( '#days' );
- for( var key in days ){
- if( days.hasOwnProperty( key ) ){
- elem.append('<li>'+key+'('+days[key]+')</li>');
- }
- }