javascript中獲取元素標(biāo)簽中間的內(nèi)容的實(shí)現(xiàn)方法
使用ajax,通過(guò)會(huì)把服務(wù)器端響應(yīng)獲取到reponseText或者reponseXML中的信息,以某種方法動(dòng)態(tài)的寫(xiě)到div和span標(biāo)記中,這樣,可以在無(wú)刷新的情況下,改變頁(yè)面內(nèi)容的顯示。
通過(guò)javascript進(jìn)行動(dòng)態(tài)的修改,修改的方法有兩種:
1. 一種是使用html的每個(gè)標(biāo)記的innerHTML屬性,使用此屬性,只要為它提供一個(gè)有意義的html代碼片段,那么html解釋器就可以將其中的內(nèi)容進(jìn)行解釋?zhuān)@示在頁(yè)面上,使用這種方式比較簡(jiǎn)單,每次修改前不需要先把原來(lái)的內(nèi)容清除掉,而可以直接進(jìn)行填充,填充的同時(shí)會(huì)把原來(lái)的內(nèi)容覆蓋掉。這種方式雖然簡(jiǎn)單,但是目前還不是w3c的標(biāo)準(zhǔn),不過(guò)主流的瀏覽器如IE,firefox都已經(jīng)采用。
2. 另外一種是創(chuàng)建一個(gè)Text Node節(jié)點(diǎn)作為div和span元素的子節(jié)點(diǎn),采用這種方式,div和span中要顯示的內(nèi)容保存在Text Node中,這樣div和span元素顯示的內(nèi)容是由Text Node提供的。需要注意的是:在每次填寫(xiě)內(nèi)容時(shí),需要先把原來(lái)的Text Node刪除掉,然后新建一個(gè)Text Node再寫(xiě)入內(nèi)容。如果不刪除的話(huà),那么每次調(diào)用填充操作時(shí),都會(huì)新建一個(gè)新的Text Node,也就造成div和span元素下有多個(gè)Text Node節(jié)點(diǎn),并且每個(gè)Text Node都會(huì)把自身的內(nèi)容顯示出來(lái),因此不會(huì)覆蓋原來(lái)的內(nèi)容。
<html>
<head>
<style>
.css1{background-color:ff0000;color:ff9966;border:1;cursor:hand;}
.css2{background-color:00ff00;color:ffffff;border:1;cursor:hand;}
</style>
<script type="text/javascript">
function changeneirong()
{
var spanv = document.getElementsByTagName("span");
spanv[2].innerHTML = "我由常軍魁變?yōu)榱藄pan";
}
function changediv()
{
document.getElementsByTagName("div")[0].innerHTML = "我由常軍魁變成了div";
}
function changep()
{
document.getElementsByTagName("p")[0].innerHTML = "我由常軍魁變成了p標(biāo)簽";
}
function change()
{
var spanvar = document.getElementsByTagName("span");
alert(spanvar[0].innerHTML);
document.getElementsByTagName("span")[0].className = "css2";
}
function fillDivWithInnerHTML() {
var username = document.getElementById("username").value;
var textDiv = document.getElementById("textDiv");
textDiv.innerHTML=username;
}
function fillDivWithTextNode() {
var textDiv = document.getElementById("textDiv");
//首先刪除所有已新建的Text Node節(jié)點(diǎn)
while(textDiv.hasChildNodes()) {
textDiv.removeChild(textDiv.childNodes[0]);
}
var textNode = document.createTextNode(document.getElementById("username").value);
textDiv.appendChild(textNode);
}
function fillSpanWithInnerHTML() {
var username = document.getElementById("username").value;
var textSpan = document.getElementById("textSpan");
textSpan.innerHTML=username;
}
function fillSpanWithTextNode() {
var textSpan = document.getElementById("textSpan");
//首先刪除所有已新建的Text Node節(jié)點(diǎn)
while(textSpan.hasChildNodes()) {
textSpan.removeChild(textSpan.childNodes[0]);
}
var textNode = document.createTextNode(document.getElementById("username").value);
textSpan.appendChild(textNode);
}
</script>
</head>
<body>
<span class="css1" onclick="change()">常軍魁</span>
<span class="css1" onclick="javascript:this.className='css2'">這是一段文字
</span>
<br />
<span onclick="changeneirong()" style="corsur:hand;">常軍魁</span>
<br />
<div onclick="changediv()">常軍魁</div>
<p onclick="changep()">常軍魁</p>
<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>
以上就是小編為大家?guī)?lái)的javascript中獲取元素標(biāo)簽中間的內(nèi)容的實(shí)現(xiàn)方法全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
BootStrap Progressbar 實(shí)現(xiàn)大文件上傳的進(jìn)度條的實(shí)例代碼
這篇文章主要介紹了BootStrap Progressbar 實(shí)現(xiàn)大文件上傳的進(jìn)度條的實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(十五) 瀏覽器中的JavaScript
Window對(duì)象對(duì)操作瀏覽器窗口非常有用,開(kāi)發(fā)者可以移動(dòng)或調(diào)整瀏覽器窗口的大小2012-08-08
JavaScript 中文轉(zhuǎn)拼音實(shí)現(xiàn)代碼 有些bug
在做項(xiàng)目時(shí)候遇到一個(gè)小小的顯示客戶(hù)部門(mén)名稱(chēng)(拼音)的業(yè)務(wù),就是在部門(mén)名稱(chēng)下有相應(yīng)的拼音,而在現(xiàn)有的數(shù)據(jù)庫(kù)中沒(méi)有相應(yīng)字段,并且部門(mén)數(shù)量比較多,添加起來(lái)比較費(fèi)時(shí),就想能否在js中實(shí)現(xiàn),在頁(yè)面中處理。2010-03-03
JS新包管理工具yarn和npm的對(duì)比與使用入門(mén)
在2016年10月11日f(shuō)acebook 公開(kāi)了新的javascript包管理工具 yarn, 用來(lái)替代目前被廣泛使用的npm(nodejs 自帶的包管理工具),本文將介紹yarn工具帶來(lái)的優(yōu)點(diǎn)和使用入門(mén),以及對(duì)比npm解決了什么問(wèn)題,帶來(lái)哪些便利。有需要的朋友們下面來(lái)一起看看吧。2016-12-12

