我有一个类.object
,它有一个名为level
的属性。我想获得页面上level
的所有不同值的列表,以便我可以选择最高值。
如果我这样做:
$(".object").attr("level")
...这会得到一个值列表,它是level属性的值吗?我怀疑没有,但那你怎么做那样的事情?
注意:我不想选择HTML对象进行操作,因为这种情况比较常见,我想选择属性的值。
编辑:为了获得最高级别,我已经完成了这项工作,但它似乎没有用。我现在将尝试其他建议的方法。
var highLevel=0;
$.each(".object[level]", function(i, value) {
if (value>highLevel) {
highLevel=value;
}
});
alert(highLevel);
答案 0 :(得分:179)
$(".object").attr("level")
将只返回第一个.object
元素的属性。
这将为您提供所有level
的数组:
var list = $(".object").map(function(){return $(this).attr("level");}).get();
答案 1 :(得分:26)
问题的第一部分,将属性值转换为数组。看到这个问题
jQuery get img source attributes from list and push into array
你会说
var levelArray = $('.object').map( function() {
return $(this).attr('level');
}).get();
问题的第二部分,您可以使用this technique to get the highest value
var maxValue = Math.max.apply( Math, levelArray );
答案 2 :(得分: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);
});
答案 3 :(得分:2)
选择器
$(".object[level]")
将为您提供包含课程object
和属性level
的所有dom元素。
然后你可以使用.each()方法迭代元素以获得最高值
答案 4 :(得分:0)
您可以extend the functionality of Jquery添加自己的'attrs'实施。
将以下代码行添加到JavaScript文件中:
jQuery.fn.extend({
attrs: function (attributeName) {
var results = [];
$.each(this, function (i, item) {
results.push(item.getAttribute(attributeName));
});
return results;
}
});
现在,您可以通过调用以下内容获取级别值列表:
$(".object").attrs("level")