jquery 中的 $(“#”) 与 js中的document.getElementById(“”) 的区别

http://www.blogjava.net/tyjava/articles/372007.html

                    var filenameArray = jsonObj.Filename.split(',');
                    var selectObj = document.getElementById("Filename");
                    if(filenameArray.constructor === Array){
                        for(var i=0; i<filenameArray.length; i++){
                            var optionElem = document.createElement('option');
                            optionElem.text = filenameArray[i];        
                            selectObj.add(optionElem,null);
                            try
                            {
                                $('#Filename').add(optionElem,null); // standards compliant
                            }
                            catch(ex)
                            {
                                $('#Filename').add(optionElem); // IE only
                            }
                        }
                    }

 http://www.jquery.org.cn/archives/375

http://blog.allenm.me/2009/07/jquery%E4%B8%ADid%E5%92%8Cdocumentgetelementbyidid%E7%9A%84%E5%8C%BA%E5%88%AB/

使用Jquery的$(“#id”)选择了<select>标签,然后用DOM的add方法插入<option>节点,失败,换用document.getElementByID就可以。一直以为Jquery的$方法返回的是DOM对象,搜索了一下才知道,原来是有差别的,看来是我看书的时候不认真造成的。

用Jquery选择的包装集返回的是Jquery对象,用document.getElementByID返回的却是DOM对象,既然对象不同,方法也就不能混用,所以我开始的时候使用add方法是没用的。这里有一篇文章详细讲解Jquery对象和DOM对象之间的转换。简单说来就是:Query对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。 对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)。

所以对于我遇到的问题,我只要使用$(“#id”)[0];就可以获得DOM对象了,就可以使用add方法了。

———————————update———————————————

用Jquery的时候,用.each()可以遍历包装集里面的DOM对象

posted on 2015-10-15 16:42  JUDE008  阅读(1758)  评论(0)    收藏  举报

导航