【发布时间】:2020-10-30 15:54:27
【问题描述】:
我有多个具有不同 ID 的输入,我正在寻找一种方法来查找每个输入的 ID。我制作了a pen here,但基本上,这是我迄今为止尝试过的。
// DISPLAYS ALL ID's
var id = [];
$('input').each(function() {
id.push($(this).attr('id'))
})
// DISPLAYS THE FIRST ID
var ids = $('.content div').find('input').attr('id');
// DISPLAYS THE FIRST ID
var i = $('input').get(0).id
// APPEND LABEL
var customlabel = $('<label>input ID = #' + i + '</label>');
$('.content div').append(customlabel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content">
<div><input type='radio' id="one" /></div>
<div><input type='radio' id="two" /></div>
</div>
<div class="content">
<div><input type='radio' id="three" /></div>
<div><input type='radio' id="four" /></div>
</div>
<div class="content">
<div><input type='radio' id="five" /></div>
<div><input type='radio' id="six" /></div>
</div>
我的目标只是分别获取每个输入的 ID。但是有了这个 var i,我只能得到第一个输入的 ID(每行都有“一个”)。当我使用 .each() 时,所有 ID 会一起显示(一、二、三、四、五、六)。
var id=[];
$('input').each(function(){
id.push($(this).attr('id'))
})
我的 jQuery 知识有限,我已经花了几个小时尝试在堆栈上找到的不同解决方案,因此非常感谢任何帮助。
【问题讨论】:
-
预期的结果是什么?标记最后应该是什么样子?
-
从您的示例看来,
<label>不是正确的元素。它应该被包裹在<input />元素周围,或者通过其for="..."属性与<input />元素链接 -
是的,标签是通过其“for=''”属性链接的,但我想让这个问题尽可能基本。我得到了 2 个可行的解决方案(来自 Pete 和 Thong),感谢您的帮助。