0

我在玩我在互联网上找到的一个插件来创建购物车,插件(jquery 代码)代码我很确定是指我的 html 中的“#featured”div 标签,但我不是 100% 确定。无论如何,这是我调用 smartcart 插件的 html

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

有问题的代码是它说var obj = $(this)的地方,警报带回'object object',我尝试了attr('name')和.selector和prop.('name'),它们要么带回空白或“未定义”。有人可以告诉我,我认为“this”指的是我的 html 中的特色 div,以及为什么当我尝试从警报中取回它的名称时它不起作用。只是对象对象或未定义

4

1 回答 1

0

div没有这个name属性,这就是为什么它是undefined.

此外,您错过了})倒数第三行的收盘价。

要回答您对是否this引用div元素的评论,答案是yes。无需再次将其包装到 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 );
于 2013-04-05T14:57:28.437 回答