2013-04-05 4 views
0

나는 인터넷에서 쇼핑 카트를 만들 때 발견 된 메신저 플러그인 (jquery code) 코드를 사용하여 확실히 '#featured'div를 참조합니다. 태그가 내 HTML에 있지만 100 % 확실하지 않습니다. 어쨌든 내가 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> 

이 플러그인 메신저의 SNIPPIT이

(function($){ 

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

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

로 재생되는 문제의 코드가 말한다 어디를 부르는 내 HTML VAR OBJ = $ (이) alert는 'object object', attr ('name'), .selector 및 prop ('name')를 다시 가져 왔으며 공백 또는 "undefined"를 가져 왔습니다. 누군가가 제게 '이'가 내 HTML에서 내 특집 기사를 언급하고 있으며, 내가 시도 할 때 경고에서 이름을 다시 얻지 못하는 이유를 생각해 볼 수 있었습니까? 개체 개체 또는 정의되지 않은 개체 중 하나임

+0

당신은 불을 지르고 같은 디버거를 사용하여 시도 해 봤나 :

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

그런 다음 할

? –

+0

'div'는'name'이 아니기 때문에'undefined'를 보였습니다.'id'는'.attr ('id');를 시도했습니다. – Spokey

+0

정확히 무엇을 찾고 계십니까? 플러그인이 사용 된 요소의 set 속성 또는 반환되는 객체 유형을 나타내는 정보? –

답변

0

div에는 name 특성이 없으므로 undefined입니다.

또한 마지막 줄에서 세 번째 부분에 }) 마감이 없습니다.

thisdiv 요소를 나타내는 지에 대한 의견을 답변하려면 입니다. 다시 jQuery 객체로 다시 감쌀 필요는 없습니다 (이미 하나입니다).

먼저 추가 :

(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

이것은 아닙니다 정답, 질문에 대한 의견보기. –

+0

@BobKruithof 나는 그것들이 없어지는 괄호가 없으면 ** 결코 ** 효과가 없을 것이라고 확신한다. – mattytommo

+0

빠진 괄호는 분명히 문제가 될 것입니다. 어쨌든, OP는 그가 키워드 'this'가 그가 플러그인을 사용했던 요소를 나타내길 원한다고 설명했다. –

관련 문제