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")
'development' 카테고리의 다른 글
이는 HTTP 프로토콜을 사용하지 않는 서비스 엔드 포인트 바인딩 때문일 수 있습니다. (0) | 2020.10.04 |
---|---|
Ruby는 어떻게 두 개의 값을 반환합니까? (0) | 2020.10.04 |
Maven : 프로젝트의 war 파일 이름을 바꾸는 방법은 무엇입니까? (0) | 2020.10.04 |
ArrayList를 섞는 방법 (0) | 2020.10.04 |
SQL Server 계획 : 인덱스 스캔 / 인덱스 검색의 차이점 (0) | 2020.10.04 |