development

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

big-blog 2020. 10. 4. 11:55
반응형

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


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

내가 다음과 같이하면 :

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

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

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

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

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

alert(highLevel);

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

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

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

질문의 첫 번째 부분은 속성 값을 배열로 가져 오는 것입니다. 이 질문보기

jQuery는 목록에서 img 소스 속성을 가져와 배열로 푸시합니다.

당신은 말할 것입니다

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

질문의 두 번째 부분은 이 기술을 사용 하여 가장 높은 가치를 얻을 수 있습니다.

var maxValue = Math.max.apply( Math, levelArray );

<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);
});

선택자

$(".object[level]")

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

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


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

Add the following lines of code to your JavaScript file:

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

Now you can get the list of level values by calling:

$(".object").attrs("level")

참고URL : https://stackoverflow.com/questions/2754021/jquery-get-a-list-of-values-of-an-attribute-from-elements-of-a-class

반응형