使用JSDOM,我想获得所有具有相同名称的输入标记

Using JS DOM, I want to get all input tags with the same name

本文关键字:输入 使用 JSDOM      更新时间:2023-09-26

嘿,伙计们,我有这个简单的表单,只需要知道如何调用所有名为"checks"的输入标签。

<form>
    <ul>
        <li><input type="checkbox" name="checks"/> A</li>
        <li><input type="checkbox" name="checks"/> B</li>
        <li><input type="checkbox" name="checks"/> C</li>
        <li><input type="checkbox" name="checks"/> D</li>
    </ul>
</form>

到目前为止,我拥有的JS是:

function myFunc() {
    return document.getElementsByTagName('input').name;
}

您可以使用.querySelectorAll()和属性选择器:

document.querySelectorAll('input[name="checks"]');

您还可以使用.forEach循环对它们进行迭代:

var checkboxes = document.querySelectorAll('input[name="checks"]');
Array.prototype.forEach.call(checkboxes, function (el) {
    console.log(el.name);
});

当然,您也可以使用.getElementsByName()

document.getElementsByName('checks');

参见:

  • https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
  • https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

console.log( document.querySelectorAll('input[name=checks]') )
<form>
    <ul>
        <li><input type="checkbox" name="checks"/> A</li>
        <li><input type="checkbox" name="checks"/> B</li>
        <li><input type="checkbox" name="checks"/> C</li>
        <li><input type="checkbox" name="checks"/> D</li>
    </ul>
</form>   

使用Document.getElementsByName():

var inputs = document.getElementsByName("checks");

您将得到一个包含所有这些输入的NodeList对象。