我怎样才能按类而不是“GetElementById”获取元素?

时间:2013-05-24 16:52:24

标签: javascript getelementbyid getelementsbyclassname

所以,这是代码:

<a id="link" href="https://url.com/">URL:</a>
<input id="value"/>

<script type="text/javascript">
    var link= document.getElementById('link');
    var input= document.getElementById('value');
    input.onchange=input.onkeyup= function() {
        link.search= 'extendurl/'+encodeURIComponent(input.value);
    };
</script>

这是有效的,但我需要使用类而不是ID。我试试这个:

<script type="text/javascript">
    var link= document.getElementByClassName("link")[0];
    var input= document.getElementByClassName("value")[0];
    input.onchange=input.onkeyup= function() {
        link.search= 'extendurl/'+encodeURIComponent(input.value);
        link.firstChild.data= link.href;
    };
</script>

<a class="link" href="https://url.com/">URL:</a>
<input class="value"/>

我不知道为什么,但这不起作用。

有人?

2 个答案:

答案 0 :(得分:6)

确切的名称很重要。

更改

getElementByClassName

getElementsByClassName

有一个s因为可能有多个元素带有一个给定类,与具有特定id的元素相反。

答案 1 :(得分:2)

可以有许多具有完全相同类名的元素,因此您必须为其调整

而不是

getElementByClassName

你必须这样做

getElementsbyClassName("someclass");

它将返回所有这些

的数组