我是原型/ jquery的菜鸟,当我尝试在chrome控制台中执行此操作时,在一个名为“contains_filter_select”的div页面上:
>> $("contains_filter_select" )
<div id="contains_filter_select">…</div>
但它似乎不是一个对象?
>> $("contains_filter_select").text("abc")
TypeError: Object #<HTMLDivElement> has no method 'text'
$("#contains_filter_select")
null
我觉得我在这里错过了一些微不足道的事情,有人能指出我正确的方向吗?
答案 0 :(得分: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那样它是&#39;只是一个ID值)。使用jQuery,即使你的选择器没有工作,你也不会得到你得到的错误。使用Prototype或MooTools,我很确定你会这样做,因为它们都没有向元素添加text
方法。
所以答案是:我根本不认为您在该页面上使用jQuery。仔细检查脚本标记。 (FWIW,如果你恰好使用流行的在线工具jsFiddle,如果你不改变左边的下拉菜单,则默认为MooTools。)
答案 1 :(得分:1)
使用哈希符号(#)和选择器的ids
$("#contains_filter_select" )
答案 2 :(得分:0)
为了获得$("#contains_filter_select" )
ID,应为<div>
。一旦你这样做,它应该工作。
编辑:如果你看这里:http://jsfiddle.net/mRBJq/它运作正常。
答案 3 :(得分:0)
ID的选择器必须以“#”为前缀。
$("#contains_filter_select")
不是$("contains_filter_select")
答案 4 :(得分:0)
如果你在页面中包含了jQuery,那么你的$
已被一个函数覆盖,该函数通过Id获取元素并且与jQuery无关。使用此:
(function($){
// Now $ refers to jQuery
$("#contains_filter_select").text("abc");
})(jQuery);
如果您尚未加入jQuery,请参阅T.J. Crowder's answer。