2011-09-09 4 views
4

"data"속성을 사용하고 IE7에서 값을 얻는 방법을 모르겠습니다. jQuery가 나를 도울 수 있습니까?"data"속성을 얻는 방법은?

나는이

window.event.srcElement.getAttribute('data-pk') 

은 물론 작동하지 않을 수 있습니다.

편집 :

for (i=0; i < max; i++) { 

    if (typeof attachEvent == 'undefined'){   
     //open[i].addEventListener('click', function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false}); 
     open[i].onclick = function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false}; 
    } else { 
     open[i].attachEvent('onclick', function(){ 
      openSlide(window.event.srcElement.getAttribute('data-pk'))}, false); 
    }; 
}; 

HTML은

<div>        
    <img class='image' data-pk='18' src='/site_media/media/img/120x180.jpg'>        
    <img class='image' data-pk='13' src='/site_media/media/img/007b-300x224.jpg'>        
    <img class='image' data-pk='15' src='/site_media/media/img/IMG_0549_1.jpg'>        
</div> 
+0

라고? –

+0

다른 브라우저에서도 작동합니까? –

+0

@ DanielA.White, 클릭시 호출됩니다. 나는 나의 질문을 편집했다. – I159

답변

11

jQuery를 JQuery와에 ... 데이터 속성이 데이터와 함께 작동() 함수를 할 수 있습니다.

$(srcElement).data('pk'); 

당신이 가지고있는 경우, 예를 들어, 데이터 속성으로 사용할 수 있습니다 :

$('#DivId').data('something'); 
$('#DivId').data('somethingElse'); 

데이터를 설정하려면 :

<div id="DivId" data-something="foo" data-somethingElse="bar"> 

당신은에 의해 데이터를 얻을 수 있습니다

$('#DivId').data('something', 'foo'); 
$('#DivId').data('somethingElse', 'bar'); 

여기에에 대한 링크입니다

는 편집 :

나는 당신이 원하는 생각 : 문자열이 전달하는 것을

$(srcElement).data('pk'); 

참고 :

$('.image').click(function() { 
    openSlide($(this).data('pk'), false); 
}); 
+0

나는 이렇게했다 : open [i] .attachEvent ('onclick', function() { \t \t \t \t openSlide ($ (this prcElement) .data ('pk'))}, false);' 그리고 이것은 정의되지 않았습니다. HTML은 괜찮습니다. 데이터 -pk가 존재합니다. 내가 잘못한 것을 얻을 수 없다. – I159

+0

'$ (this)를 사용하십시오.data ('pk')' – Martin

+0

@Martin 정확히 무엇을 찾고 있었습니까? +1 – Luca

0

jQuery를 당신이이 같은 데이터 방법을 사용할 수 있습니다 데이터를 'pk'로 만들면 속성의 'data-'부분 만 삭제하면됩니다.

0

jQuerys (또는 다른 libs) attr 게터를 사용할 수 있습니다. 또는 jQuery source을보고 브라우저 간 일관성을 얻은 방법을 찾아 볼 수 있습니다.

1

맨위로 대답은 오래된 것입니다. 예제가 <div id="DivId" data-somethingElse="bar"></div> 인 경우 데이터를 가져 오려면 $('#DivId').data('somethingelse')을 수행해야합니다. 더 나은 표준 방법은 자바 스크립트에 낙타 표기법을 얻을 것이다, HTML에서 뱀 케이스를 사용하는 것입니다

HTML :

<div id="foo" data-something-else="bar"></div> 

JS :이 무엇 이벤트를

alert($('#foo').data('somethingElse')); // Alerts "bar" 
관련 문제