Javascript Jquery获取公共父级中输入元素值的数组
我有一个jquery应用程序,其中我正在模板化一个包含3个文本字段的html块。我需要获取特定块中文本字段的值。在所有块中复制标识符 示例代码Javascript Jquery获取公共父级中输入元素值的数组,javascript,jquery,arrays,selector,Javascript,Jquery,Arrays,Selector,我有一个jquery应用程序,其中我正在模板化一个包含3个文本字段的html块。我需要获取特定块中文本字段的值。在所有块中复制标识符 示例代码 <div> <div class="htmlBlock"> <ul> <li> <input class="myInput1" type="text"> <input class="myInput2" type="text">
<div>
<div class="htmlBlock">
<ul>
<li>
<input class="myInput1" type="text">
<input class="myInput2" type="text">
<input class="myInput3" type="text">
</li>
<li>
<input class="myInput1" type="text">
<input class="myInput2" type="text">
<input class="myInput3" type="text">
</li>
<li>
<input class="myInput1" type="text">
<input class="myInput2" type="text">
<input class="myInput3" type="text">
</li>
</ul>
<button class="clickMe">Click to get values of this block</button>
</div>
<div class="htmlBlock">
<ul>
<li>
<input class="myInput1" type="text">
<input class="myInput2" type="text">
<input class="myInput3" type="text">
</li>
</ul>
<button class="clickMe">Click to get values of this block</button>
</div>
</div>
-
-
-
单击以获取此块的值
-
单击以获取此块的值
当我单击
.clickMe
按钮时,我想调用$('.myInput').val()
并仅在按钮所在的块内获取值。您可以执行以下操作:
$('button.clickMe').on('click', function() {
var block = $(this).closest('.htmlBlock');
var inputs = block.find('input[type="text"]');
// .myInput1 values as an array.
var myInput1Vals = block.find('.myInput1').map(function() {
return this.value;
});
// Do what you want to do
});
我没有使用$('.myInput').val()
,因为每个输入都有不同的类。但是你可以循环通过它们,用它们做任何你想做的事情,它们都会被定位在那个块中
这将在
.map
之后使用.toArray()
将其转换为非jQuery对象的数组,谢谢。如何按类名获取值。我修改了这个例子,使之更符合实际情况。我想获取.myInput1的数组,最后一个返回的是空数组。当我将其更改为var block=$(this.closest('.paramList')时,第一个就起作用了;block.find(paramVal.push($('.customParamValue').val());但是当出现多个时,它只找到一个值。我只是添加了一个链接到一个小提琴,显示myInput1Vals
根本不是空的。它们之所以只返回一个值,是因为jQuery只返回集合中第一个值的val()
。
$('button.clickMe').on('click', function() {
var values = $(this).closest('.htmlBlock').find('input[type="text"]').map(function(){
return this.value;
}).get();
});