完全自学成才,而不是实际阅读JavaScript(现在是我的工作,信不信由你),有些事我接受但不理解。
第一个是美元符号。
据我所知,它是document.getElementById()
的捷径,
但如果我将$
和document.getElementById()
记录到控制台 - 只有$
会返回一个值。但是,此值始终为function()
,不应该如此。元素?是什么给了什么?
我遇到的第二个问题是我的代码中不断出现的问题,我不遗余力地更改代码以消除它。这是“......不是函数”错误。
例如:
if ($.inArray($(div_id).val(), arr) >= 0);
将给出错误.val() is not a function
。为什么?我如何使用div_id
的值来查看它是否在数组中?
答案 0 :(得分:4)
你好。当你使用Jquery(我假设你是)时,$将返回jquery对象。这可以包含一系列匹配的HTML元素,具体取决于您使用的选择器。例如$(“#foo”)将返回包含id为foo的元素的jquery对象。您可以使用$(“#foo”)[0]获取实际的HTML DOM元素 - 使用数组样式表示法。
您可以通过$ .inArray示例向我们提供有关您尝试实现的更多信息吗?
答案 1 :(得分:2)
$是一个有效的变量名。
因此,如果您尝试使用$而不进行设置,则无效。
然而,许多人/框架使用$作为document.getElementById的快捷方式,他们会将其声明为脚本的顶部:
function $(id) { return document.getElementById(id); }
答案 2 :(得分:0)
$和document.getElementById不是同一个东西。 $只有当你使用像jquery这样的函数库来为你提供一个函数才能在函数控制器中运行。
.val id主要用于获取表单元素的值,这是一个jquery函数。我认为您需要了解更多有关javascript和jQuery的信息
答案 3 :(得分:0)
Javascript和DOM都没有定义$
,其中(正如其他回答者所说)通常在jQuery,Prototype或Mootools等通用DOM库中定义。根据您包含的特定代码,我怀疑您一直在编写jQuery API代码(因为您使用$.inArray
,请参阅http://api.jquery.com/jQuery.inArray/;尽管您声称$
别名{{1}混淆很重要,因为jQuery需要CSS选择器而不是元素ID。
当预期document.getElementById
但未定义时,通常意味着您需要在HTML文档中包含您正在使用其API的库。