document.write()如何影响jQuery的功能?

时间:2013-09-04 11:42:06

标签: javascript jquery

在使用 jQuery jqxWidget jqxMenu的客户端中,有时(大约3次中的3次)仅在一个特定页面上失败,并使用适当的CSS进行“丰富”样式(为了使它成为jqxMenu)。

jqxMenu的包含代码片段适用于客户端的每个其他页面。 与工作页面的唯一区别在于,失败页面还包括来自其他服务器的Javascript以动态显示选项。

远程包含的代码如下所示:

document.write('<table cellspacing="2" cellspacing="2" border="0" align="center">');
document.write('<tr>');
document.write('<td><a href="http://www.someurl.com" target="_blank"><img src="https://someimage.com/jsp/icons/someimage.gif" border="0" 
...
document.write('</tr>');
document.write('</table>');

当我将生成的表静态嵌入到我的代码中时,问题不会发生。

修复问题的静态变体:

<table cellspacing="2" cellspacing="2" border="0" align="center">
<tr>
<td><a href="http://www.someurl.com" target="_blank"><img src="https://someimage.com/jsp/icons/someimage.gif" border="0" 
...
</tr>
</table>

问题是:将document.write() jQuery 和/或jqWidgets结合使用是否存在问题?

什么是解决方法(考虑包装器,因为解析并使用jQuery来放置它们似乎有点矫枉过正)?

1 个答案:

答案 0 :(得分:1)

document.write阻止jQuery代码的执行,因为jQuery作用于DOM中已有的元素,而使用document.write时,这些元素不存在。所以jQuery实际上无法找到你的DOM元素。