2013-04-05 70 views
0

即時通訊使用我在互聯網上創建購物車時發現的插件,插件(jQuery代碼)代碼我很確定地指的是我的'#featured'div在我的HTML標記,但我不是100%肯定。反正這是我的html這裏我所說的smartcart插件我如何獲得jquery中的一個元素的對象名稱

<script type="text/javascript"> 

$(document).ready(function(){ 
    // Call Smart Cart instead of features maybe something more higher up to include more features  
    $('#featured').smartCart(); 
    }); 
</script> 
<div id="featured"></div> 

這與

(function($){ 

$.fn.smartCart =function() { 
var options = $.extend({}, $.fn.smartCart.defaults, options); 
return this.each(function() { 

      var obj = $(this); 
      alert(obj); 
}; 
})(jQuery); 

播放插件IM的SNIPPIT有問題的代碼是在那裏說:VAR OBJ = $(本),警告帶回'對象對象',我嘗試了attr('name')和.selector和prop。('name'),並且它們帶回空白或「未定義」。有人可能會告訴我,我認爲這是指我的html中的特色div,也是爲什麼當我嘗試從警報中取回它的名字時,它不起作用。只是對象對象或未定義的對象

+0

您是否嘗試過使用調試器如螢火蟲? – 2013-04-05 14:55:41

+0

它顯示'undefined',因爲'div'沒有'name',而是'id',嘗試'.attr('id');' – Spokey 2013-04-05 14:56:23

+0

你到底在找什麼?插件使用的元素的集合屬性或某些信息來指示返回哪種類型的對象? – 2013-04-05 15:07:46

回答

0

您的div沒有name屬性,這就是爲什麼它是undefined

此外,你錯過了從最後一行第三個結束})

要回答您對this是否涉及div元素的評論,答案是。沒有必要再將它包裝到一個jQuery對象中(它已經是一個了)。

首先添加:

<div id="featured" name="foo"></div> 

然後做:

(function($){ 

    $.fn.smartCart =function() { 
     var options = $.extend({}, $.fn.smartCart.defaults, options); 
     return this.each(function() { 

      var obj = $(this); 
      alert(obj.attr("name")); 
     }); //you were missing this 
    }; 
})(jQuery); 
+0

這不是一個正確的答案,請參閱問題上的評論。 – 2013-04-05 15:13:51

+0

@BobKruithof我很確定這是,沒有這些失蹤的括號,它會** **從未**工作。 – mattytommo 2013-04-05 15:21:36

+0

缺少的括號顯然是一個問題。無論如何,OP解釋說他想確保關鍵字「this」代表他使用該插件的元素。 – 2013-04-05 15:24:41

相關問題