JQuery语法,带.val(""); (返回数组)

Isu*_*eka 3 javascript arrays syntax jquery

我对Jquery很新,所以我对如何执行下面描述的内容感到有点困惑...

我想做什么:

  1. 在整个页面中搜索具有单词Rate的输入文本框,然后再搜索Quantity.

  2. 做一个计算,总和(费率*数量)

  3. 将结果呈现给用户.

我做了什么

  1. 因为行是动态添加的,所以元素名称中有GUID,所以我搜索它们.

我需要帮助的地方

我可以使用.val("")命令提取值,但我对如何执行我需要的步骤的语法感到困惑.

这是我有的:

  $("#alertButton").live("click", function () {
                var rateValues = $('input[name*="Rate"]').val("");
                var qtyValues = $('input[name*="Qty"]').val(""); 

                           //how do i handle it here

            });
Run Code Online (Sandbox Code Playgroud)

这就是在html中呈现速率文本框之一(可能有0到多个,因为它们被动态添加到页面中)

<input type="text" value="0" style="width: 100%;" name="JobDetails[dd1c94e5-5e83-4a92-b5c4-0a5aea0eb5df].Rate" id="JobDetails___randomNumber___Rate" data-val-required="The Rate (Exl GST) field is required." data-val-number="The field Rate (Exl GST) must be a number." data-val="true">
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 5

当你将参数传递给".val()" - 甚至是空字符串 - 你设置的值<input>.您可以使用".val()"(无参数)获取值,但只获取第一个匹配元素的值.

总的来说,你可能需要使用".map()":

var rateValues = $('input[name*="Rate"]').map(function() {
  return this.value;
});
var qtyValues = $('input[name*="Qty"]').map(function() {
  return this.value;
});
Run Code Online (Sandbox Code Playgroud)

这将为您提供数值和数量的数组.如果您还想要"id"或"name",您可以返回其他内容:

var rateValues = $('input[name*="Rate"]').map(function() {
  return { value: this.value, name: this.name };
});
Run Code Online (Sandbox Code Playgroud)

然后你会有一个对象数组.