2014-11-02 6 views
2

아래 코드와 관련하여 동적으로 생성 된 ID가있는 div의 'role'속성을 가져와야합니다.동적 ID로 클릭 한 div의 속성 가져 오기

HTML :

<div id="renable0" role="0"> 
    false 
</div> 
<div id="renable1" role="1"> 
    true 
</div> 
<!-- THE LIST OF DIVS CONTINUES IN INCREASING INCREMENTS OF 1 --> 

자바 스크립트 :

$("[id^='renable']").editInPlace({ // editInPlace is a jQuery plugin 
    url: 'save.php', 
    params: 'pos='+$(this).attr('role') // How can I get this role attribute for the clicked div? 
}); 

답변

3

당신이 필요합니다을 .each() 루프를 사용하는 경우 :

$("[id^='renable']").each(function() { 
    $(this).editInPlace({ 
     url: 'save.php', 
     params: 'pos='+$(this).attr('role') 
    }); 
}); 

비슷한 옵션에 대해 다른 jQuery 플러그인과 마찬가지로 editInPlaceparams 옵션을 기능으로 허용하면 좋을 것입니다. 그러나 그렇지 않기 때문에, 당신은 이것을 할 필요가 있습니다.

참고 : role 속성을 사용하면 ARIA의 일부로 사용하려는 의도와 일치하지 않습니다. 표준 역할은 buttonmenuitem과 같은 것입니다. 이와 같이 표준 속성을 악용하거나 사용자 정의 속성을 작성해서는 안됩니다. 요소에 추가 속성을 넣으려면 data-XXX 개의 요소를 사용하십시오.

<div id="renable0" data-role="0"> 

$(this).data('role')으로 jQuery에서 액세스 할 수 있습니다.

0

this 당신의 요소에 참조하지만하지 않습니다, 당신에 대한 참조 유지해야합니다

// loop through your elements 
$("[id^='renable']").each(function() { 
    // keep reference to it 
    var $elem = $(this); 

    // make it editInplace 
    $elem.editInPlace({ 
     url: 'save.php', 
     params: 'pos='+$elem.attr('role') 
    }); 
});