0

我是原型/jquery 的菜鸟,当我尝试在 chrome 控制台中执行此操作时,在一个名为“contains_filter_select”的 div 页面上:

>> $("contains_filter_select" )
<div id=​"contains_filter_select">​…​&lt;/div>​

但它似乎以某种方式不是一个对象?

>> $("contains_filter_select").text("abc")
TypeError: Object #<HTMLDivElement> has no method 'text'

 $("#contains_filter_select")
 null

我觉得我在这里遗漏了一些微不足道的东西,有人能指出我正确的方向吗?

4

5 回答 5

5

你说:

>> $("contains_filter_select").text("abc")

TypeError: Object #<HTMLDivElement> has no method 'text'

这表明您根本没有使用 jQuery,而是使用了其他一些库。有几个库使用该$符号:jQuery、Prototype 和 MooTools(至少)。Prototype 和 MooTools 的工作方式,当您使用 时$("contains_filter_select"),您将获得对实际div对象的引用;jQuery 是不同的,使用 jQuery,您可以返回一个围绕一组匹配元素的包装器(字符串将是 CSS 样式的选择器,#在元素 ID 之前有一个,与 Prototype 和 MooTools 不同,它只是一个 ID 值)。使用 jQuery,即使您的选择器不起作用,您也不会收到您遇到的错误。使用 Prototype 或 MooTools,我很确定您会这样做,因为它们都没有text向元素添加方法。

所以答案是:我认为您根本没有在该页面上使用 jQuery。仔细检查脚本标签。(FWIW,如果您碰巧使用流行的在线工具jsFiddle,如果您不更改左侧的下拉菜单,它默认为 MooTools。)

于 2012-06-05T14:26:18.420 回答
1

对选择器使用带有 ID 的井号 (#)

$("#contains_filter_select" )
于 2012-06-05T14:25:12.480 回答
0

应该是$("#contains_filter_select" )为了得到<div>ID。一旦你这样做,它应该可以工作。

编辑:如果你看这里:http: //jsfiddle.net/mRBJq/它工作正常。

于 2012-06-05T14:22:46.663 回答
0

ID 的选择器必须以“#”为前缀。

$("#contains_filter_select")不是$("contains_filter_select")

于 2012-06-05T14:23:09.930 回答
0

如果你在你的页面中包含了 jQuery,那么你$已经被一个通过 Id 获取元素的函数覆盖了,并且与 jQuery 无关。用这个:

(function($){
    // Now $ refers to jQuery

    $("#contains_filter_select").text("abc");

})(jQuery);

JSFiddle

如果您尚未包含 jQuery,请参阅TJ Crowder 的回答

于 2012-06-05T14:25:37.220 回答