jQuery1.0源代码分析之domManip方法(七)
在读下面代码时,我们会发现这几个Dom操作的函数都会调用domManip函数
append: function() {
return this.domManip(arguments, true, 1, function(a){
this.appendChild( a );
});
},
prepend: function() {
return this.domManip(arguments, true, -1, function(a){
this.insertBefore( a, this.firstChild );
});
},
before: function() {
return this.domManip(arguments, false, 1, function(a){
this.parentNode.insertBefore( a, this );
});
},
after: function() {
return this.domManip(arguments, false, -1, function(a){
this.parentNode.insertBefore( a, this.nextSibling );
});
},
那这个domManip函数是干什么用的呢?
dom即Dom元素,Manip是Manipulate的缩写,连在一起就是Dom操作的意思。
我们来看下面一段代码,代码本身很简单,就是在table中插入一行一列,并写上文本haha。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript">
window.onload = function() {
var table = document.getElementsByTagName('table')[0];
var tr = document.createElement('tr');
var td = document.createElement('td');
var txt = document.createTextNode('haha');
td.appendChild(txt);
tr.appendChild(td);
table.appendChild(tr);
};
</script>
</head>
<body>
<table></table>
</body>
</html>
但是,上面代码在IE 6上是执行不成功的,大家可以试一下。在IE 8以上的浏览器都是好用的。
万恶的IE!!!!!
IE 6上失败的原因就是IE 6认为tr标签必须在tbody下面。也就是说,代码写成下面这样,就所有浏览器都OK了。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title
- 发表评论
-
- 最新评论 更多>>