javascript - 从循环中的不同元素获取不同的值

标签 javascript jquery loops

我有 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/

相关文章:

javascript - 在单选按钮上添加事件

java - 统计循环中每个字母的出现次数并显示出现次数最多的字母

javascript - 验证带有字母的指数和十六进制表示法的数值

Javascript: "this.itemsIndex"格式/语法

javascript - 使用 Vanilla javascript 将元素高度设置为等于宽度

javascript - jQueryclearInterval 不工作

jquery - 自定义 jQuery 对话框关闭按钮

javascript - 使用 ":checked"切换显示和隐藏 &lt;iframe&gt;

c - 在 for 循环中遍历所有无符号整数

loops - 如何在不克隆的情况下多次重复使用 Range?