데이터 속성 값 (data-event_id = 1282)으로 <li>
요소를 가져 오려고합니다.jQuery 데이터 ID로 요소 가져 오기
<div id="timeline">
<ul>
<li class="timeline-event">
<div>Event Body</div>
</li>
</ul>
</div>
$el = $('#timeline ul').find("li.timeline-event").data('event_id');
console.log($el); // returns 1282
$el = $('#timeline ul').find("li.timeline-event[data-event_id='1282']").html();
console.log($el); // returns undefined
내가 뭘 잘못하고 있니?
EDIT - 솔루션
데이터는 .DATA를 사용하여 설정된다 ('1282'을 'EVENT_ID')를 다른 코드이다.
.data()를 사용하여 jQuery를 설정하면 데이터를 가져올 수 없습니다.
@psycho brm이 filterByData 함수를 사용하여 여기에서 해결책을 찾았습니다. 그것은 작동합니다!
jQuery how to find an element based on a data-attribute value?
$.fn.filterByData = function(prop, val) {
return this.filter(
function() { return $(this).data(prop)==val; }
);
}
나는이 비록 jQuery를 버그를해야합니다 가정?
그들에 지정하도록해야
귀하가 제공 한 html에 data-event_id 속성이 없습니다. 샘플 코드를 업데이트하십시오. –'.find()'는'undefined'를 반환하지 않습니다. 아무 것도 찾지 못해도 빈 jQuery 컬렉션을 반환합니다. – Barmar
[jQuery의 가능한 중복 데이터 속성 값을 기반으로 요소를 찾는 방법?] (http://stackoverflow.com/questions/4191386/jquery-how-to-find-an-element-based-on-a -data-attribute-value) – showdev