我有 10 个 html 元素。我需要 8 个元素的值属性和 2 个元素的类,并将它们全部放入一个数组中。 Id 是关键。
如何用 JS 或 jQuery 解决这个问题?
我从 .each()
开始,但我很快发现我不能在该循环中使用异常 - 它会对所有元素进行更改。
var myArray = {};
$( '.need-values, .need-classes' ).each( function () {
myArray[this.id] = $( this ).val();
});
我知道我可以使用 2 个 .each()
循环并将值组合到一个数组中,但问题是有些是复选框 - 我需要使用 if
语句循环中。
最佳答案
在循环内执行此操作
myArray[this.id] = $(this).is('need-values') ? $(this).val() : $(this).attr('class');
如果元素具有need-values
类,它将获取值,否则,它将获取类。当然,您可以根据不同的情况和其他情况根据自己的需要进行调整
var myArray = {};
$('.need-values, .need-classes').each(function() {
myArray[this.id] = $(this).hasClass('need-values') ? $(this).val() : $(this).attr('class');
});
console.log(myArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="a" type="checkbox" class="need-values" value="a">
<input id="b" type="checkbox" class="need-values" value="b">
<input id="c" type="checkbox" class="need-values" value="c">
<input id="d" type="checkbox" class="need-classes d" value="d">
<input id="e" type="checkbox" class="need-classes e" value="e">
<input id="f" type="checkbox" class="need-classes f" value="f">
关于javascript - 从循环中的不同元素获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473917/