簡體   English   中英

如何使用 querySelectorAll 和 getAttribute?

[英]How to use querySelectorAll and getAttribute?

我有這個 HTML 文件...

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <title>simple II</title>
</head>
<body>
        <div id="results"><!-- Results are displayed here -->
                <form method="post" name="start" target="_blank">
                        <p>Enter thing1: <input type="text"     id="thing1" name="thing1" size="10" /></p>
                        <p>Enter thing2: <input type="text"     id="thing2" name="thing2" size="10" /></p>
                        <p>Enter thing3: <input type="text"     id="thing3" name="thing3" size="10" /></p>
                        <p>Check thing4: <input type="checkbox" id="thing4" name="thing4" value=1>
                        <input type="hidden" id="state" name="state" value="one" /></p>
                </form>
                <button id='clickme' name='clickme'>Click me</button>
        </div>
        <script src="simple2.js?0000000000002"></script>
</body>
</html>

...還有這個 javascript 源文件 ...

document.querySelector("#results button").addEventListener("click", function(e) {
        e.preventDefault();
        var inputs = document.querySelectorAll("input");
        var params;
        var amp = "";
        for( var i = 0; i < inputs.length; i++ ) {
                var input       = inputs[i];
                var name        = input.getAttribute(name);
                var value       = input.getAttribute(value);

                params +=       amp + name + "=" + value;
                amp     =       "&";
        }
        alert( params );
});

...當我填寫表格並單擊按鈕時,我得到以下結果:

在此處輸入圖片說明

一切都是“空”:(我在這里做錯了什么?

您需要引用 getAttribute 中的值

var name        = input.getAttribute('name');
var value       = input.getAttribute('value');

由於namevalue是 dom 元素的原生元素,因此您也可以簡單地使用

var name        = input.name;
var value       = input.value;

或者,這一切都可以使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce來完成

document.querySelector("#clickme").addEventListener("click", function() {
 alert([].reduce.call(document.querySelectorAll("input"),function(pre,cur){
  return (pre == "" ? pre : pre+"&") + cur.name + "=" + cur.value;
 },""));
});

http://jsfiddle.net/78Lwd5bf/

使用現代JS:

document.querySelectorAll('.className').forEach(elem => console.log(elem.getAttribute('attribute-you-want')));

暫無
暫無

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

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