Jquery定位器在重新加载后查找错误的页面

本文关键字:查找 错误 加载 定位器 新加载 Jquery | 更新日期: 2023-09-27 18:00:05

我有以下页面:default.aspxwidgets/rss.aspx

rss.aspx在加载default.aspx时动态加载到div中,代码为:

$.get('/Widgets/rss.aspx', { TabControlID : 385}, function(data) {
    $('#drbox385').html(data);
});

这毫无问题。

rss.aspx中的代码:

<input type="submit" value="Save" />
<div id="RSSfeed<%=TabControlID %>">
<script type="text/javascript">
  var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=<%=MyUrl%>&num=<%=MyCount %>";
  $.getJSON(gurl, function (data) {
  var feeds = data.responseData.feed;
  if (!feeds) {
      $("#RSSfeed<%=TabControlID %>").append('There was an error loading this feed.');
      }
      else
      {
          for (var i = 0; i < feeds.entries.length; i++) {
              var entry = feeds.entries[i];
              var title = entry.title;
              var link = entry.link;
              var description = entry.contentSnippet;
              var html = "<div class='stippel'><img height='10' width='10' src='/images/rss10.png' style='margin-right:2px;'><a target='_blank' href='" + link + "' class='feed_item_link' title='" + description + "'>" + title + "</a></div>";
              // this line doesn't work after reload
              $("#RSSfeed<%=TabControlID %>").append($(html));
              // end of bug
          }
      }
  })
</script>    

单击"保存"按钮时,配置数据将发布到default.aspx上的一个不可见iframe中iframe生成以下代码以使用新配置重新加载小部件:

$(document).ready(function(){
var str;
str = "<div style='text-align:center'><img src='/images/loading.gif' width='32' heigth='32'/></div>";
$(parent.document).find('#drbox385').html(str);
$.get('/Widgets/rss.aspx', { TabControlID : 385}, function(data) {
$(parent.document).find('#drbox385').html(data);
});
}); 

数据被加载回页面,但rss.aspx中的这行代码不起作用:

$("#RSSfeed<%=TabControlID %>").append($(html));

Jquery正在rss.aspx中查找ID#RSSfeed385,而不是default.aspx

改变这种行为的正确语法是什么?

Jquery定位器在重新加载后查找错误的页面

这样进行追加。

$("#RSSfeed<%=TabControlID %>", window.top.document).append(html);

我还添加了window.top.document,告诉他们在顶部文档中搜索,而不是在rss.aspx 中搜索

http://api.jquery.com/append/

通过在前面添加$,您实际上可以搜索元素来添加它们,只需删除它即可添加html变量中存在的代码。