簡體   English   中英

如何使用$ key按名稱獲取元素

[英]How to get element by name with $key

的PHP

  //Here is my html for qty

       <p>Qty : <input type="number"  value="" name="qty<?php echo $key ?>   onChange="findTotal()"/> 

JS功能

        function findTotal() {
        var arr = document.getElementsByName('qty');
      ...

        document.getElementById('result').value = decimalPlaces(tot, 2);

        }

我的數量名稱需要用於帖子數組的鍵。 如何在js函數中獲取名稱以計算數量?

您可以使用

document.querySelector("input['name^='qty']").value

如果您沒有jQuery。

這將選擇name屬性以“ qty”開頭的input 如果您有多個符合條件的輸入,則可以使用進行選擇

document.querySelectorAll("input[name^='qty']")

這將返回一個NodeList 您可以在此處了解更多信息。

你可以做這樣的事情

  var myVar = document.getElementsByTagName("somename");
  //do something else

如果您使用的是jQuery

value = $( "input[name^='qtd']" ).val();
//it will pick the input wich name starts with 'qtd'

在純DOM中,可以使用getElementsByTagName來獲取所有輸入元素,並循環遍歷所得數組。 名稱以“ qty”開頭的元素將被推送到另一個數組:

var eles = [];
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].name.indexOf('qty') == 0) {
        eles.push(inputs[i]);
    }
}

不要通過name屬性的值查詢元素。 我不確定該鍵的目的是什么,以及為什么在findTotal方法中需要它,但這是一個示例:

<p>Qty : <input type="number" value="" name="qtyMyKey" onChange="findTotal(event)" /></p>

  <script>
    function findTotal(e) {

      var inputEl = e.target,
        inputName = inputEl.getAttribute('name'),
        myKey;

      if (typeof inputName === 'string') {
        myKey = inputName.replace('qty', '');
      }

      console.log(myKey);

      //var arr = document.getElementsByName('qty');
      //document.getElementById('result').value = decimalPlaces(inputEl.value(), 2);
    }

  </script>

這是jsFiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM