首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2013-02-04 
jQuery动态创建DOM的代码,有点不懂,求大神解释script$(function(){$(input).click(function(){$.alert

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


        <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');

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

热点排行