document.getElementByName()[0] undefined

时间:2014-03-27 18:51:10

标签: javascript

这是我的js函数

function toggleCountry(country)
{
    var elem = document.getElementsByName(country)[0].value;
    alert(elem);
}

被称为onclick事件

<a href="#" onclick="toggleCountry('usa');"><div class="navBarItems">USA</div></a>

我有另一个div属性name =“usa”,我想搜索它并禁用文本。但是,我总是得到未定义,因为它在我的警报中返回。

编辑:它是一个div标签。

2 个答案:

答案 0 :(得分:3)

document.getElementsByName(name)要求您使用name=""属性。

有了这个,尝试改变:

var elem = document.getElementsByName(country)[0].value;

要:

var elem = document.getElementsByName(country)[0].innerHTML;

(只要这是你的目标)

.value这里是错误的方法(元素上没有值属性)。我能够访问.innerHTML就好了,所以你的功能就是选择合适的元素。如果.innerHTML不是您想要的,则可以将其替换为其他方法。我不完全确定你在这里所达到的目标,但希望这个jsfiddle有所帮助:

http://jsfiddle.net/S68qr/

答案 1 :(得分:0)

我不确定你的实施,Stuart Kershaw已经提供了一个很好的解决方案。

另一种方法是更改​​HTML以提供更动态的选择。

    <select onchange="toggleCountry(this.value)">
       <option value="USA">USA</option>
       <option value="CDN">CDN</option>
    </select>

您可以使用此功能来检索值。

function toggleCountry(country)
{
    alert(country);
}

http://jsfiddle.net/LzubU/