簡體   English   中英

我如何使用javascript按值拆分數組

[英]how do i split array by values using javascript

由於我不知道如何提出問題,我將嘗試解釋需要做什么。 程序應該從表數據中獲取所有值,並在提交按鈕時將表數據的值插入到輸入字段中(每個值到一個輸入字段中)乘以插入的數字。 我設法從表數據中獲取值,但不知道如何處理。 這是我為測試創建的代碼。 注意(需要純 javascript)

<html>
<input type="text" class="class1" id="1"></br>
<input type="text" class="class1" id="2"></br>
<input type="text" class="class1" id="3"></br>
<input type="text" class="class1" id="4"></br>
<input type="text" class="class1" id="5"></br>
<table>
    <tr>
        <td class="class1" id="1">10</td>
    </tr>
    <tr>
        <td class="class1" id="2">20</td>
    </tr>
    <tr>
        <td class="class1" id="3">30</td>
    </tr>
    <tr>
        <td class="class1" id="4">40</td>
    </tr>
    <tr>
        <td class="class1" id="5">50</td>
    </tr>
</table>
insert number<input type="text" id="text">
<input type="submit" id="submit">

<script>
    var elements = document.getElementsByClassName("class1");
    var vrednost = "";
    for (i=0; i<elements.length; i++){
        vrednost += elements[i].textContent;
    }
    document.write(vrednost);

</script>

嘗試使用querySelectorAll有效地完成您的工作,

var tds = document.querySelectorAll("table td.class1");
var inputs = document.querySelectorAll("input[type='text'].class1");

Array.from(inputs).forEach(function(elm, i){
 elm.value = tds[i].textContent;
});

演示

使用data-id關聯兩個元素,並使用指定data-id屬性值的querySelector選擇元素。

永遠記住, ID屬性不能在網頁中重復。

您不能盲目依賴tdinput元素的position ,因為它們可能不同步。

Array.from()方法從類數組或可迭代對象創建一個新的 Array 實例。

 document.getElementById('submit').addEventListener('click', function() { var elements = document.querySelectorAll("td.class1"); //Select all `td` elements having class as `class1` var mul = document.getElementById('text').value; //get multiplication value Array.from(elements).forEach(function(elem) { document.querySelector("input.class1[data-id='" + elem.dataset.id + "']").value = (+elem.textContent * +mul); }); })
 <input type="text" class="class1" data-id="1"> </br> <input type="text" class="class1" data-id="2"> </br> <input type="text" class="class1" data-id="3"> </br> <input type="text" class="class1" data-id="4"> </br> <input type="text" class="class1" data-id="5"> </br> <table> <tr> <td class="class1" data-id="1">10</td> </tr> <tr> <td class="class1" data-id="2">20</td> </tr> <tr> <td class="class1" data-id="3">30</td> </tr> <tr> <td class="class1" data-id="4">40</td> </tr> <tr> <td class="class1" data-id="5">50</td> </tr> </table> insert number <input type="text" id="text"> <input type="submit" id="submit">

暫無
暫無

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

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