jQuery-클래스 요소에서 속성 값 목록 가져 오기


86

.object라는 속성 이있는 클래스 가 있습니다 level. level가장 높은 값을 선택할 수 있도록 페이지에있는 모든 다른 값의 목록을 얻고 싶습니다 .

다음과 같이하면 :

$(".object").attr("level")

... 레벨 속성의 값인 값 목록을 얻을 수 있습니까? 아닐 것 같은데 어떻게 그렇게 하시나요?

참고 : 더 일반적인 조작을 위해 HTML 개체를 선택하지 않고 속성 값을 선택하려고합니다.

편집 : 가장 높은 "레벨"을 얻기 위해이 작업을 수행했지만 작동하지 않는 것 같습니다. 이제 다른 제안 된 방법을 시도해 보겠습니다.

var highLevel=0;
$.each(".object[level]", function(i, value) {
   if (value>highLevel) {
       highLevel=value;
   }
});

alert(highLevel);

5
이 질문에 대한 대답으로이 중 하나를 선택해야합니다 @Ankur
나단 쿠프에게

답변:


195

$(".object").attr("level")첫 번째 .object요소 의 속성을 반환합니다 .

이것은 당신에게 모든 배열을 얻을 것입니다 level.

var list = $(".object").map(function(){return $(this).attr("level");}).get();

6
무엇을 .get()합니까?
유지 'Tomita'Tomita

21
@Yuji- getjQuery 객체를 일반 배열로 변환합니다.
Kobi

@MandeepJain : 답변을 '정답'으로 표시하는 방법은 무엇입니까? 이 항목은 '수락 됨'으로 표시되지 않았을 수 있지만 100 명 이상의 사람들이 '유용함'으로 투표했으며 나에게는 충분합니다!
Michael Scheper 2016-10-05

1
좋은 대답입니다. 저에게 좀 더 직관적이고 깔끔한 방법은 .get()먼저 어레이에 대한 것입니다 . 그런 다음 .map()플러스 화살표 기능 (브라우저 지원 : caniuse.com/#search=arrow )을 사용하여 약간의 평범한 자바 스크립트로 어레이를 구축하십시오.$(".object").get().map(x => x.getAttribute('level'));
elPastor


3
<script type="text/javascript"> 
var max = 0;
jQuery(document).ready(function(){ 
    jQuery('.object[level]').each(function(){
        var num = parseInt($(this).attr('level'), 10);
        if (num > max) { max = num; }
    });
    alert(max);
});
</script>

다음과 같은 마크 업을 가정하고 있습니다.

<div class="object" level="1">placeholder</div>
<div class="object" level="10">placeholder</div>
<div class="object" level="20">placeholder</div>
<div class="object" level="1000">placeholder</div>
<div class="object" level="40">placeholder</div>
<div class="object" level="3">placeholder</div>
<div class="object" level="5">placeholder</div>

내 코드에 대해 "1000"경고를받습니다.

다음은 harpo, lomaxx 및 Kobi의 여러 다른 응답을 결합한 또 다른 솔루션입니다.

jQuery(document).ready(function(){ 
    var list = $(".object[level]").map(function(){
        return parseInt($(this).attr("level"), 10);
    }).get();
    var max = Math.max.apply( Math, list ); 
    alert(max);
});

2

선택자

$(".object[level]")

클래스 object와 속성 이있는 모든 dom 요소를 제공 합니다 level.

그런 다음 .each () 메서드를 사용하여 요소를 반복하여 가장 높은 값을 얻을 수 있습니다.


$(".object[level=something]") 뭔가 당신을 위해 무엇을 찾고있는 속성 값입니다
제임스

0

당신은 할 수 JQuery와의 기능을 확장 하고 자신 지을 수 있었던 '구현을 추가 할 수 있습니다.

JavaScript 파일에 다음 코드 줄을 추가합니다.

jQuery.fn.extend({
    attrs: function (attributeName) {
        var results = [];
        $.each(this, function (i, item) {
            results.push(item.getAttribute(attributeName));
        });
        return results;
    }
});

이제 다음을 호출하여 레벨 값 목록을 가져올 수 있습니다.

$(".object").attrs("level")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.