.attr选择器不会在每个循环中工作?

时间:2012-06-01 10:29:31

标签: javascript jquery

以下是代码:

  $.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);
      }
  });

2 个答案:

答案 0 :(得分:4)

this是一个DOM节点,而不是一个jQuery对象。请阅读.each() documentation并查看示例。

实际上你似乎已经知道了,因为你正在呼叫$(this).html() ......

答案 1 :(得分:1)

尝试将this.attr("preview-id")更改为$(this).attr("preview-id")

就像你在$(this).html(item.Value)

中使用它一样

希望这对你有所帮助。