如何通过名称获取HTML元素

7

在 JavaScript 中,是否有一种方法可以仅获取特定名称,而不使用返回数组的 document.getElementsByName("x");? 我有一种特殊情况,无法使用 ID。 请提供建议。 谢谢。

3个回答

18

只需获取第一个元素:

document.getElementsByName("x")[0];

或者为了安全起见:

function getFirstElementByName(element_name) {
    var elements = document.getElementsByName(element_name);
    if (elements.length) {
        return elements[0];
    } else {
        return undefined;
    }
}

(顺便说一下,getElementsByName返回的是一个集合而不是一个数组。)


在 JavaScript 中,数组和集合之间是否存在真正的区别? - Harshana
是的。它们具有不同的属性。 - Quentin

9
如果你要查找单个元素,可以从节点列表中取出第一个元素,例如:
var element = document.getElementsByName("x")[0];

You can test it out here.


0

或者使用jQuery,这样你就不必再去烦恼所有的浏览器问题了。

你只需要这样做:

$("*[name='x']").first();

获取具有该名称的第一个元素。如果您知道元素类型,则可以使用它代替“*”。每次使用jQuery都会使您的生活更轻松!


或者使用 $("*[name='x']").first() 来进行查询,即使没有返回任何元素也不会抛出错误。 - softcr
5
可爱的,我认为在这种情况下,“getElementsByName”函数不那么“烦人”。 - MooGoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接