我有一个包含数据的div。我希望当用户点击div时,它会被文件的竞争覆盖并且原始内容(你好)消失了,这可能吗?示例代码如下:
<a href="#"><div class="test">hello</div></a>
<script type="text/javascript">
$('.test').load('/new_file.php {cookieId:"<? echo $cookieId; ?>"});
</script>
所以带有类测试的<div>
是一个链接,单击它时会被文件new_file.php的内容覆盖
我的逻辑是正确的还是需要重新加工?
如果可以,那么<a>
onclick命令会触发它吗?
答案 0 :(得分:2)
你想要做的是在你的div中添加一个点击处理程序,然后在点击处理程序中通过XHR获取一些新的HTML。
然后只需使用XHR中的responseText设置textContent。
div.addEventListener('click', updateContent);
function updateContent() {
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', overwriteContent);
xhr.open('GET', '/new_file.php');
xhr.send();
function overWriteContent() {
div.textContent = this.responseText;
}
}
答案 1 :(得分:1)
$(document).ready(function() {
$('.test').click(function() {
$(this).empty().load('/new_file.php', {cookieId:"<? echo $cookieId; ?>"});
}
}
答案 2 :(得分:0)
该代码有一个未终止的字符串。另外#test
表示id'test',而.test
表示类'test'。
$('.test').load('/new_file.php', {cookieId:"<? echo $cookieId; ?>"});
我希望你不是那样将PHP发送到服务器上的。这是一个巨大的安全问题,让用户在您喜欢的服务器上运行任何代码。如果你能用JS做到这一点;他们可以做任何他们喜欢的其他代码,可能是恶意的。
答案 3 :(得分:0)
一行:
<div class="test" onclick="$(this).load('/new_file.php?cookieId=<? echo $cookieId; ?>');">hello</div>
虽然为什么要将cookieId作为参数发送?是不是已经自动发送了,好吧,一个cookie?