当前位置:编程问答 > JS >

js错误提示:对象不支持此属性或方法。

问题:调试中断语句处:var varName=$(id).getElementsByTagName("li"); var listLength = varName.length; 调试时指向listLength语句出错:对象不支持此属性或方法。 在上面出现错误语句的a.js文件中有定义: function $(id) { return document.getElementById(id); } 在之后的div中有调用b.js。页面中有如下格式的调用: $(function( ) { $("#id").show( ); }) 现象是:如果注释掉对b.js的引用,那么与a.js有关的功能均能正常实现。如果恢复对b.js的引用,那么与b.js有关的功能正常,但与a.js有关的功能不能正常实现。 请问:是什么原因?如何解决?
追问:a.js是js。b.js是引用的jQuery。
现在调试时是这句出错:var varName=$(id).getElementsByTagName("li");
如果注释掉a.js中的$,js是否可以调用jQuery中的$ ?js中该如何修改?
答案:定义的$冲突了,看$(function( ) { $("#id").show( ); })应该是引用了jQuery吧。如果是把a.js的改了用jQuery操作
var listLength = $("li", "#"+id).length;
如果不是引用的jQuery,那你只能改其中的一个$ function,如function $(id) { return document.getElementById(id); }改成function $$(id) { return document.getElementById(id); }
还有jQuery中可以把$映射回原始的对象使用jQuery.noConflict();如果这样的话,$(function( ) { $("#id").show( ); })就得写成$(function( ) { jQuery("#id").show( ); })
其他:function $(obj){
    return document.getElementById(obj)
}
var maxWidth=$("img").getElementsByTagName("ul")[0].getElementsByTagName("li").length*230;
我的也是出现这样的错,要怎么改呢 

上一个:js 回车替换空格
下一个:HTML JS进 怎么用一张图片来覆盖提交按钮

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,