天真(!和不正確)的例子是:
var victims = document.querySelectorAll('body *');
for(var i = 0; i < victims.length; i++) {
victims[i].innerHTML = " " + victims[i].innerHTML + " ";
}
但是,一旦你運行它,你會發現你的所有元素都被破壞了!因爲,當你改變innerHTML
時,你也在改變元素的孩子。但我們可以避免這種情況,通過不替換內容,但添加它:
var padLeft = document.createTextNode(" ");
var padRight = document.createTextNode(" ");
victims[i].appendChild(padRight);
victims[i].insertBefore(padLeft, victims[i].firstChild);
看起來很酷!但是,不 - 我們毀掉了我們的腳本標籤,圖像等等。讓我們解決這個問題太:
var victims = document.querySelectorAll('body *');
for(var i = 0; i < victims.length; i++) {
if(victims[i].hasChildNodes) {
var padLeft = document.createTextNode(" ");
var padRight = document.createTextNode(" ");
victims[i].appendChild(padRight);
victims[i].insertBefore(padLeft, victims[i].firstChild);
}
}
在這裏,你拿到劇本:)它不跨瀏覽器的一路下跌至Netscape4,但也足以理解基本概念。
來源
2011-09-21 19:01:30
c69
元素裏面可以有元素嗎? – harpo
頁面上的所有元素? – Marshall
@馬歇爾,@harpo,是的。頁面上的所有元素,並且可能是其他元素內的元素。是否有快速的方法來REX'''和'<'到'/ \ w /'? – cj333