Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery获取公共父级中输入元素值的数组_Javascript_Jquery_Arrays_Selector - Fatal编程技术网

Javascript Jquery获取公共父级中输入元素值的数组

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">

我有一个jquery应用程序,其中我正在模板化一个包含3个文本字段的html块。我需要获取特定块中文本字段的值。在所有块中复制标识符

示例代码

<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();
});