使用jQuery更改动态内容?

时间:2010-09-06 20:18:29

标签: javascript jquery

我很擅长使用jQuery,但目前正在使用Safari扩展程序,并且在页面上添加了一些文本时遇到了一些难题。

基本上,我正在创建一个扩展,它会在元素的页面上附加一个特定的文本字符串

<td id="name">foo</td>

使用以下jQuery代码

  jQuery("#name").filter(function() 
         {return jQuery(this).text() == 'foo'; }).append('bar');

这会导致

<td id="name">foobar</td>

这在标准的html页面中效果很好但是 - 我希望它运行的站点使用不同的JS来动态加载元素中的内容,因此在网站上测试它时,元素列为

<td id="name"></td>

然后JS库为其添加名称,这意味着我无法附加文本(名称出现在浏览器窗口中但不在页面的源代码中)。有没有办法解决这个问题?

我尝试过使用

$(window).load()

虽然这没有效果。

1 个答案:

答案 0 :(得分:1)

听起来你需要延迟脚本,以便在编写“foo”的其他脚本运行后运行。通常,jquery脚本使用

在文档加载上运行
$(function(){ /* script */  });

所以,如果这太早,你可能需要绑定一些在写入“foo”时发生的事件,你可能需要挂钩到你的其他脚本。从问题中不清楚这是一个ajax的东西写“foo”或只是另一个没有任何额外负载的脚本。你可能想发帖。

如果你仍然无法弄明白,你总是可以使用setTimeout()调用来延迟你的脚本,但这很草率,不推荐。