设置javascript变量的Ajax响应覆盖了任何html元素
Ajax response which sets javascript variable covers up any html elements
有这样的方法吗?我的ajax设置了一个javascript变量,但当我尝试使用document.write显示它时,它覆盖了html元素。可以这样做吗?这样我就可以使用javascript变量而不掩盖html元素了?提前谢谢。
<html>
<head>
<title>Log In</title>
<!-- script tag for ajax jquery -->
<link href='style.css' type="text/css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
//Get Data ajax function
$.post(
'getData.php',
{
},
function(response)
{
$('#name').html($('#1' , response).html());
$('#sname').html($('#2' , response).html());
var x = $('#1' , response).html();
document.write(x);
})
return false;
})
</script>
</head>
<body>
<div id="name"></div>
<div id="sname"></div>
this is text that get covered up, as well as any other html elements
</body>
</html>
document.write
主要用于页面加载期间的。在响应事件时,可以通过createElement
、appendChild
等函数修改DOM;或类似CCD_ 4的特性。
例如,如果您想将x
的内容附加为div
中的标记,而不是
document.write(x);
你可以这样做:
var div = document.createElement('div');
div.innerHTML = x;
document.body.appendChild(div);
如果您想找到已经在DOM中的元素并对其进行修改,则可以使用document.getElementById
(如果它有ID)或document.getElementsByTagName
(两者都是DOM2的一部分)或(在大多数但不是所有当前浏览器上)从选择器API获得具有给定标记的元素列表(querySelector
和querySelectorAll
)。
更多阅读:
- DOM2核心规范
- DOM2 HTML规范
- DOM3核心规范
- HTML5 Web应用程序API
- API 1级选择器
因此,既然您使用的是jQuery,就不应该使用document.write,因为其他人已经强调了这些原因。使用这个替代:
$(document).ready(function()
{
//Get Data ajax function
$.post(
'getData.php',
{
},
function(response)
{
$('#name').html($('#1' , response).html());
$('#sname').html($('#2' , response).html());
var x = $('#1' , response).html();
// Use .append() instead of document.write()
$('body').append(x);
})
return false;
})
这样就不会丢失任何现有数据。
相关文章:
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 正则表达式选择任何 html 标记之间的字符串
- 一旦 JavaScript 中任何 HTML 元素的值发生变化,就会更新画布
- 如何检索 BSTR* picBytes 并在任何 HTML 脚本中显示位图图片
- 任何 html 元素的 Javascript 样式编辑器工具栏
- 存在作为始终可见列表选择器的任何 HTML 表单小部件
- 我可以使用任何 HTML 或 JavaScript API 在 input[type=file] 中获取文件的路径吗?
- 如何将我的自定义javascript代码添加(链接)到任何html/php页面
- 默认为文件夹中的任何html文件
- 如何在回发后保持对asp文本框或任何html元素的关注)
- 如何在ExtJS中获得任何HTML的渲染文本
- 为什么任何html按钮都会导致aspx页面回发
- 设置javascript变量的Ajax响应覆盖了任何html元素
- 将样式应用于'它不在任何HTML标记中
- 如何在没有任何html标记的情况下使用ng-show
- 使用jQuery .each()读取任何html值并更改它
- 如何模拟鼠标点击任何HTML元素(iframe,对象等)从Firefox扩展
- 用Angularjs隐藏任何html元素
- 为什么gmail源代码不显示任何html
- 是否有任何方法可以使用Javascript列出文件夹中存在的所有文件,而不使用任何HTML标记?