繁体   English   中英

关于JavaScript基础知识的几个问题 - $,“不是函数”

[英]A few questions about JavaScript basics - $, “is not a function”

完全自学成熟而不实际阅读JavaScript(这是我现在的工作,信不信由你),有一些我接受但不理解的东西。

第一个是美元符号。

据我所知,它是document.getElementById()的快捷方式,但如果我将$document.getElementById()到控制台 - 只有$返回一个值。 但是这个值总是function() ,不应该是。 元素? 是什么赋予了?

我遇到的第二个问题是我的代码中不断出现的问题,我不遗余力地更改代码以消除它。 这是“......不是函数”错误。

例如:

if ($.inArray($(div_id).val(), arr) >= 0);

会给出错误.val() is not a function 为什么? 我如何使用div_id的值来查看它是否在数组中?

你好。 当你使用Jquery(我假设你是)时,$将返回jquery对象。 这可以包含一系列匹配的HTML元素,具体取决于您使用的选择器。 例如$(“#foo”)将返回包含id为foo的元素的jquery对象。 您可以使用$(“#foo”)[0]获取实际的HTML DOM元素 - 使用数组样式表示法。

您能否通过$ .inArray示例向我们提供有关您尝试实现的更多信息?

$是有效的变量名。

因此,如果您尝试使用$而不设置它,它将无法正常工作。

然而,很多人/框架使用$作为document.getElementById的快捷方式,他们会在脚本的顶部声明它:

function $(id) { return document.getElementById(id); }

$和document.getElementById不是同一个东西。 $只有当你使用像jquery这样的库来为函数提供函数时,才会在控制台中提供一个函数。

.val id主要用于获取表单元素的值,这是一个jquery函数。 我认为你需要了解更多关于javascript和jQuery的知识

Javascript和DOM都没有定义$ ,(正如其他回答者所说)通常在jQuery,Prototype或Mootools等通用DOM库中定义。 基于您包含的特定代码,我怀疑您一直在编写针对jQuery API的代码(因为您使用$.inArray ,请参阅http://api.jquery.com/jQuery.inArray/ ;尽管您声称$ aliases document.getElementById让人感到困惑,因为jQuery需要CSS选择器而不是元素ID。

$是预期但未定义时,这通常意味着您需要在HTML文档中包含您正在使用其API的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM