2012-06-01 69 views
0

下面的代碼:.attr選擇器不會在每個循環中工作?

$.ajax({ 
     url: 'AEWService.asmx/previewAsset', 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     data: json, 
     success: function (json) { 
      var prevObj = jQuery.parseJSON(json.d); 
      setInterval(function() { 
       var pId = $('#previewIframe').contents().find('[preview-id]'); 
       $.each(prevObj, function (i, item) { 
        pId.each(function() { 
         var pElem = this.attr("preview-id"); 
         if (pElem == item.Id) { 
          $(this).html(item.Value); 
         } 
        }); 
       }); 
      }, 3000); 
     } 
    }); 
+7

'this'是一個DOM節點,而不是一個jQuery對象。請閱讀['.each()'文檔](http://api.jquery.com/each/)並查看示例。其實你已經知道,因爲你調用'$(this).html()'... –

+0

@FelixKling:答案? – Matt

+0

@Matt:猜猜它必須是... –

回答

4

this是一個DOM節點,而不是一個jQuery對象。請閱讀.each() documentation並查看示例。

其實你似乎已經知道這一點,因爲你在呼喚$(this).html() ...

1

嘗試改變this.attr("preview-id")$(this).attr("preview-id")

像你使用這$(this).html(item.Value)

希望這有助於你。

+0

難道你不是指'$(this).attr(...)'? '$ this'沒有定義。 –