我有一个js文件,它有几个fn()并且它工作正常但是当它被运行一个js插件文件时,我在firebug中得到错误。
$(document).ready(function() {
var innerHTML = $("#id_1").html();
$("#Id_2").html(innerHTML)
});
以上fn()正在运行,但现在我在firebug $("#id_1") is null
中遇到错误。
如果我使用jQuery
代替$
,那么它的工作正常。请参阅下面的更正功能。
$(document).ready(function() {
var innerHTML = jQuery("#id_1").html();
jQuery("#Id_2").html(innerHTML)
});
现在我的问题是,我有几个js文件,我使用了$
,现在我可能需要将$
更改为jQuery
。请给我任何想法以避免这种情况。
答案 0 :(得分:2)
$
只是'jQuery'的别名。
请确保您添加的库与“$”没有任何冲突。当您尝试添加另一个带有'$'的框架作为原型的别名时,通常会发生这种情况。
使用jQuery no Conflict http://api.jquery.com/jQuery.noConflict
答案 1 :(得分:2)
很明显,问题是由另一个定义$
函数的JavaScript库引起的。你可以通过以下方式解决这个问题:
var $copy = $; // Copy the original value of $ to a temporary variable
$ = jQuery;
// Do everything that needs to be done with the jQuery library */
$ = $copy; // Copy the old value of $
或者:
( function($) {
// $ has been redefined for the scope of the current function
// Do everything that needs to be done with the jQuery library */
} )(jQuery);
答案 2 :(得分:2)
您正在使用的额外库(wysiwyg.js)也声明了一个函数$()
:
/**
* Get an element by it's identifier
*
* @param id Element identifier
*/
function $(id) {
return document.getElementById(id);
}
您应该使用jQuery.noConflict()
答案 3 :(得分:1)
您似乎缺少#
$(document).ready(function() {
var innerHTML = $("#id_1").html();
$("#Id_2").html(innerHTML); // ; is optional here but good to have it
});
假设您的元素包含id
个值id_1
和Id_2
只需检查Id_2
的案例
Working fiddle
答案 4 :(得分:1)
实际上,jQuery
和$
是一回事。如果你研究jQuery源代码,你会发现类似的东西:
window.jQuery = window.$ = function(){ ... }
在你的情况下它接缝,window.$
变量被其他一些替换。您的某些文件$.noConflict()
和$
变量可能会被替换。
答案 5 :(得分:0)
你可以直接这样做
$("#id_2").html($("#id_1").html());