我可以覆盖<div>吗?</div>

时间:2012-01-04 01:26:17

标签: javascript jquery html css

我有一个包含数据的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命令会触发它吗?

4 个答案:

答案 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?