如何将原型div选择器作为对象

时间:2012-06-05 14:21:48

标签: jquery prototypejs

我是原型/ 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

我觉得我在这里错过了一些微不足道的事情,有人能指出我正确的方向吗?

5 个答案:

答案 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);

JSFiddle

如果您尚未加入jQuery,请参阅T.J. Crowder's answer