使用js动态的修改div和span标记中…
2017-10-10 16:47
351 查看
使用ajax,通过会把服务器端响应获取到reponseText或者reponseXML中的信息,以某种方法动态的写到div和span标记中,这样,可以在无刷新的情况下,改变页面内容的显示。
通过javascript进行动态的修改,修改的方法有两种:
1.
一种是使用html的每个标记的innerHTML属性,使用此属性,只要为它提供一个有意义的html代码片段,那么html解释器就可以将其中的内容进行解释,并显示在页面上,使用这种方式比较简单,每次修改前不需要先把原来的内容清除掉,而可以直接进行填充,填充的同时会把原来的内容覆盖掉。这种方式虽然简单,但是目前还不是w3c的标准,不过主流的浏览器如IE,firefox都已经采用。
2.
另外一种是创建一个Text Node节点作为div和span元素的子节点,采用这种方式,div和span中要显示的内容保存在Text
Node中,这样div和span元素显示的内容是由Text Node提供的。需要注意的是:在每次填写内容时,需要先把原来的Text
Node删除掉,然后新建一个Text Node再写入内容。如果不删除的话,那么每次调用填充操作时,都会新建一个新的Text
Node,也就造成div和span元素下有多个Text Node节点,并且每个Text
Node都会把自身的内容显示出来,因此不会覆盖原来的内容。
3.
通过不删除已有的Text Node,每次填充时创建一个新的Text
Node,可以进行多次append操作,那么对于每次操作不需要覆盖原有的情况,可以使用这种方式来实现。
实例:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<title>无标题文档</title>
<script
type="text/javascript">
function fillDivWithInnerHTML() {
var username =
document.getElementByIdx_x("username").value;
var textDiv =
document.getElementByIdx_x("textDiv");
textDiv.innerHTML=username;
}
function fillDivWithTextNode() {
var textDiv =
document.getElementByIdx_x("textDiv");
//首先删除所有已新建的Text Node节点
while(textDiv.hasChildNodes()) {
textDiv.removeChild(textDiv.childNodes[0]);
}
var textNode =
document.createTextNode(document.getElementByIdx_x("username").value);
textDiv.appendChild(textNode);
}
function fillSpanWithInnerHTML() {
var username =
document.getElementByIdx_x("username").value;
var textSpan =
document.getElementByIdx_x("textSpan");
textSpan.innerHTML=username;
}
function fillSpanWithTextNode() {
var textSpan =
document.getElementByIdx_x("textSpan");
//首先删除所有已新建的Text Node节点
while(textSpan.hasChildNodes()) {
textSpan.removeChild(textSpan.childNodes[0]);
}
var textNode =
document.createTextNode(document.getElementByIdx_x("username").value);
textSpan.appendChild(textNode);
}
</script>
</head>
<body>
<input type="text"
id="username"
name="username"/><br/>
<input type="button"
id="fillDivWithInnerHTML" value="fillDivWithInnerHTML"
onclick="fillDivWithInnerHTML()"/>
<br/>
<input type="button"
id="fillDivWithTextNode" value="fillDivWithTextNode"
onclick="fillDivWithTextNode()"/>
<br/>
<input type="button"
id="fillSpanWithInnerHTML" value="fillSpanWithInnerHTML"
onclick="fillSpanWithInnerHTML()"/>
<br/>
<input type="button"
id="fillSpanWithTextNode" value="fillSpanWithTextNode"
onclick="fillSpanWithTextNode()"/>
<span
id="textSpan"></span><br/>
<div
id="textDiv"></div>
</body>
</html>
引自:http://juwen270.blog.163.com/blog/static/804611022008112710819135/
通过javascript进行动态的修改,修改的方法有两种:
1.
一种是使用html的每个标记的innerHTML属性,使用此属性,只要为它提供一个有意义的html代码片段,那么html解释器就可以将其中的内容进行解释,并显示在页面上,使用这种方式比较简单,每次修改前不需要先把原来的内容清除掉,而可以直接进行填充,填充的同时会把原来的内容覆盖掉。这种方式虽然简单,但是目前还不是w3c的标准,不过主流的浏览器如IE,firefox都已经采用。
2.
另外一种是创建一个Text Node节点作为div和span元素的子节点,采用这种方式,div和span中要显示的内容保存在Text
Node中,这样div和span元素显示的内容是由Text Node提供的。需要注意的是:在每次填写内容时,需要先把原来的Text
Node删除掉,然后新建一个Text Node再写入内容。如果不删除的话,那么每次调用填充操作时,都会新建一个新的Text
Node,也就造成div和span元素下有多个Text Node节点,并且每个Text
Node都会把自身的内容显示出来,因此不会覆盖原来的内容。
3.
通过不删除已有的Text Node,每次填充时创建一个新的Text
Node,可以进行多次append操作,那么对于每次操作不需要覆盖原有的情况,可以使用这种方式来实现。
实例:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<title>无标题文档</title>
<script
type="text/javascript">
function fillDivWithInnerHTML() {
var username =
document.getElementByIdx_x("username").value;
var textDiv =
document.getElementByIdx_x("textDiv");
textDiv.innerHTML=username;
}
function fillDivWithTextNode() {
var textDiv =
document.getElementByIdx_x("textDiv");
//首先删除所有已新建的Text Node节点
while(textDiv.hasChildNodes()) {
textDiv.removeChild(textDiv.childNodes[0]);
}
var textNode =
document.createTextNode(document.getElementByIdx_x("username").value);
textDiv.appendChild(textNode);
}
function fillSpanWithInnerHTML() {
var username =
document.getElementByIdx_x("username").value;
var textSpan =
document.getElementByIdx_x("textSpan");
textSpan.innerHTML=username;
}
function fillSpanWithTextNode() {
var textSpan =
document.getElementByIdx_x("textSpan");
//首先删除所有已新建的Text Node节点
while(textSpan.hasChildNodes()) {
textSpan.removeChild(textSpan.childNodes[0]);
}
var textNode =
document.createTextNode(document.getElementByIdx_x("username").value);
textSpan.appendChild(textNode);
}
</script>
</head>
<body>
<input type="text"
id="username"
name="username"/><br/>
<input type="button"
id="fillDivWithInnerHTML" value="fillDivWithInnerHTML"
onclick="fillDivWithInnerHTML()"/>
<br/>
<input type="button"
id="fillDivWithTextNode" value="fillDivWithTextNode"
onclick="fillDivWithTextNode()"/>
<br/>
<input type="button"
id="fillSpanWithInnerHTML" value="fillSpanWithInnerHTML"
onclick="fillSpanWithInnerHTML()"/>
<br/>
<input type="button"
id="fillSpanWithTextNode" value="fillSpanWithTextNode"
onclick="fillSpanWithTextNode()"/>
<span
id="textSpan"></span><br/>
<div
id="textDiv"></div>
</body>
</html>
引自:http://juwen270.blog.163.com/blog/static/804611022008112710819135/
相关文章推荐
- 微信中使用js动态的修改title失效(ios)
- ASP.NET 使用CustomValidator调用js函数动态修改验证TextBox的正则表达式,无刷新
- jquery动态为个span,input,div,等标签赋值的方法总结,js动态隐藏div,
- Select中使用js动态修改了Option时如何触发onchange事件
- 关于用js动态修改div样式
- js使用removeChild方法动态删除div元素
- 对于Vue-cli的路由跳转以及使用vue.js动态修改CSS样式
- 如何使用js动态显示或隐藏DIV
- js使用removeChild方法动态删除div元素
- 如何使用js动态显示或隐藏DIV
- js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用
- 关于使用JS动态修改CSS样式问题
- div+css使用!important标记区别Firefox和IE6
- js实现的修改div里img标签的src属性
- 关于datagrid的使用以及动态修改,以及使用存储过程的介绍
- 转贴:JavaScript:使用JS和CSS构造圆角DIV广告框技术解析
- div和span元素的使用区别
- 一个图片轮换显示的实现,使用DIV+JS,支持Firefox,IE,Safiri
- WinForm中使用XtraGrid控件,实现在界面中动态修改列显示,列名列宽等
- 通过js动态清空、增加、删除、修改下拉框中的元素