js冲突怎么解决?

JavaScript018

js冲突怎么解决?,第1张

jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,主要解决办法如下:

方法一:

<script type="text/javascript">jQuery.noConflict() //将变量$的控制权让渡给prototype.jsjQuery(function(){ //使用jQueryjQuery("p").click(function(){

alert( jQuery(this).text() )

})

})

$("pp").style.display = 'none' //使用prototype</script>

方法二:

<script type="text/javascript">var $j = jQuery.noConflict() //自定义一个比较短快捷方式$j(function(){ //使用jQuery$j("p").click(function(){

alert( $j(this).text() )

})

})

$("pp").style.display = 'none' //使用prototype</script>

方法三:

<script type="text/javascript">jQuery.noConflict() //将变量$的控制权让渡给prototype.js(function($){ //定义匿名函数并设置形参为$$(function(){ //匿名函数内部的$均为jQuery$("p").click(function(){ //继续使用 $ 方法alert($(this).text())

})

})

})(jQuery) //执行匿名函数且传递实参jQuery$("pp").style.display = 'none' //使用prototype</script>

1、首先,js中并不存在 getElementByName 方法, 而应该是 getElementsByName (By之前有个s);

2、其次,之所以有个s,是因为getElementsByName方法返回的是个对象集合,是个复数,所以有s(原因是因为name属性是允许同名的,也就是说可以有多个input的name相同,这样的话返回值就不止一个了),所以正确的用法是document.getElementsByName("num1")[0].value。注意,即使页面中只存在一个name属性为num1的Input,[0]也是不能省略的,因为这是一个对象集合,不是单个对象。

3、最后,其他类似语句(num2、num3等)也要做相应修改才行。