读书人

jQuery动态创造DOM的代码有点不懂

发布时间: 2013-02-04 10:50:22 作者: rapoo

jQuery动态创—OM的代码,有点不懂,求大神解释


<script>
$(function(){
$("input").click(function(){
$.alertBox("This is msg");

})
})
jQuery.extend({
alertBox:function(msg){
var fullBox = $("<div>",{"class":"fullBox"}).appendTo("body")
if ($.browser.msie && ($.browser.version == "6.0")) {
fullBox.append("<iframe></iframe>")
}
var alertBox = $("<div>",{"class":"alertBox"}).appendTo("body")
var p = $("<p>",{
text : msg
}).appendTo(alertBox)
var enterButton = $("<a>",{
"href" : "javascript:void(0)" ,
"title" : "确认" ,
text : "确认" ,
click : function() {
$(this).blur()
$(".fullBox,.alertBox").remove()


}
}).appendTo(alertBox)
}
})
</script>



比如创建alertBox的时候,为什么var alertBox = $("<div>",{"class":"alertBox"}).appendTo("body")

而用$('<div/>').attr('class','alertBox').appendTo('body'); 不行呢。。

是因为写在jQuery.extend里的原因吗?
[解决办法]
var alertBox = 没加?
[解决办法]
这样肯定是不行的。


$('<div/>').attr('class','alertBox')

attr 是对已存在的dom进行jq方法的添加,而

$("<div>",{"class":"alertBox"})

这个是jquery内部将class绑定到div上一块appendTo进去的。
如果非要使用attr,那也可以这样:

$('<div/>').appendTo('body').attr('class','alertBox');

先添加然后再操作,这样不建议,貌似多做了一次查询。所以还是上面的那个办法靠谱。

读书人网 >JavaScript

热点推荐