您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js有关元素内容操作小结_javascript技巧

2025/11/3 9:42:56发布31次查看
1.innerhtml
这个大家一定都很熟悉,可读可写,修改元素内容相当快捷方便,在兼容问题上可以参考w3help中一个知识记录。
2.outerhtml
此方法可以用于对元素自身的快速替换,比如:
复制代码 代码如下:
hello, i am a demo
$('hello').outerhtml = 'hello, i am a replacement
';
遗憾的是,firefox目前还不支持(我当前用firefox8),其他浏览器支持的还不错,在ff中可以用innerhtml来模拟实现。
3.documentfragment
documentfragment能实现高效率的dom节点插入操作,我们可以新建一个documentfragment。
var docfragment = document.createdocumentfragment();
它支持元素节点的appendchild方法,可以利用它进行追加节点,相当于内存中的一个临时空间, 然后一次性加入dom tree中,较少浏览器相关的reflow和repaint事件,在之前的博文中有提到。
4.insertadjacenthtml
这个方法很有意思,是ie4最先引入的,目前也写入了html5标准,目前所有浏览器都支持,ff是8才刚开始支持的。 它能够实现在元素的里外,共4个地方灵活的添加内容,例如:
复制代码 代码如下:
hello, i am a demo.
$('test').insertadjacenthtml('beforebegin', /* your content here */);
这确实很cool不是么,但遗憾的是,ie自己引入,确在ie6~8的版本中存在不少bug,比如我测试中遇到如果元素是div的话, 能够在四个地方,都能顺利插入内容,这是我们所预期的,但是我换成p元素的话,‘beforebegin'和‘afterend'就会报错, 它变得只支持p外部的内容插入,不允许插入到p的内部,还有tr,td不支持此方法等各种bug。ie9测下来,表现预期。 关于这个方法jquery之父,有篇博客有讲,感兴趣的可以稍微参考下http://ejohn.org/blog/dom-insertadjacenthtml/
5.textcontent
这个是针对元素中的文本内容的操作,提取元素本身和其子元素中文本内容,这个用的频率不是很高,但还是要知道下, 比如:
复制代码 代码如下:
whatever, blah blah.
hello,i am a demo
$('test').textcontent //whatever, blah blah.hello, i am a demo
把文本直接连接起来。ie9+和其他浏览器都很好的支持此方法。
6.innertext
这个也是由ie最初引入的,除了firefox,目前其他浏览器也都支持,但是结果有些微妙的不同。在opera中,结果和textcontent一致,在chrome中,与包含该文本元素的样式有关。在ie9中,与包含该文本元素的样式有关。 事实上,innertext和textcontent看似差不多,但还是有一些值得注意的不同之处。 具体mdn上有一定的说明:
1.textcontent能够获取script,style元素中得文本。innertext不行
2.innertext结果跟样式有关,不能获取隐藏元素的文本内容,textcontent则不受限制
3.innertext会触发浏览器内部的reflow事件,而textcontent不会,这个对效率有点影响。
当然对于ie6~8,我们可以比较容易地通过遍历节点来实现textcontent的效果。如犀牛书中所给出的解决方法:
复制代码 代码如下:
function textcontent(e) {
var child, type, s = []; // s holds the text of all children
for(child = e.firstchild; child != null; child = child.nextsibling) {
type = child.nodetype;
if(type === 3 || type === 4) { //text and cdatasection nodes
s.push(child.nodevalue);
} else if(type === 1) {
s.push(textcontent(child));
}
return s.join('');
}
}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product