我正在尝试制作一个覆盖图像上文字的动态引用旋转器。 JS和jQuery都可以正常工作。问题是我希望每次点击一个按钮时都更新,这样用户就不必刷新页面就能看到新的报价。
使用jQuery.text(),. html()或.append()为DIV提供代码后,甚至可以执行document.write吗?它可以逐字打印实际文本,但不会执行< script>。
如果有人有经验或其他建议,不涉及将其变成PHP / MySQL的整个大型AJAX,我会全神贯注。我不是在找任何人写我的代码;只是指出我正确的方向。我有一种压倒性的感觉,这应该比我实现它要容易得多,而且我知道我缺少一些基本和简单的东西。
感谢您阅读,我欢迎您提供任何建议。
编辑/更新:我在下面提供一些基本代码,让您更好地了解我的意思。
<div id="text"></div>
<script src="quotes.js"></script>
$("#text").text('
<script type="text/javascript">document.write(quote[Math.floor(Math.random()*5)]);</script>
');
我只是想用quotes.js中的随机引用来更新#text。如果我可以使用它,我可以弄清楚如何用jQuery.click()自己更新它。
答案 0 :(得分:2)
加载文档后,您无法使用document.write()
。这样做会导致整个文档被清除并启动一个新文档。如果要将文本添加到已加载的文档中,则可以使用适当的jQuery方法修改现有元素或添加新元素。
为了帮助您使用确切的代码,我们需要查看您的HTML以及更准确地说明您要添加到其中的内容。
作为一些示例,可以使用.append()
jquery方法或使用.html()
方法向元素添加对象。
答案 1 :(得分:1)
您可以使用jQuery的html
或append
方法执行script
,如果它存在于我们传递的内容中。
看一下这个演示
答案 2 :(得分:1)
如果您希望在点击事件后发生DOM更新操作,则只需将点击处理程序附加到该按钮:
$('#your_button').click(function() {
// Action
$('#your_element').html('<p>something</p>');
});
答案 3 :(得分:1)
document.write()
仅适用于已打开的文档,因此您不应在AJAX中使用它。
如果您想执行JavaScript,只需使用eval()
或$.getScript()
即可。这意味着AJAX响应应该是一个数组(JSON),然后每个元素可以是一个脚本,一个html ...然后你将它们发送到适当的函数。
您将“呈现”的JSON响应示例:
[
0: {type: 'replace', target: 'div#replaceme', value: '<p>Hello!</p>'},
1: {type: 'script', target: NULL, value: 'http://example.com/test.js'},
2: {type: 'append', target: '#result', value: '<p>Item 11</p><p>Item 12</p>'}
]