2010-03-18 80 views
1

我对js很新,所以很乐意帮助我。document.getElementById不工作<a>标记

我想添加一个类到标记使用onClick。

的代码如下所示:

<a class="gkvSprite" href="#" id="abc" onClick="showhide('1')">Click 1</a> 
<a class="gkvSprite" href="#" id="def" onClick="showhide('2')">Click 2</a> 
<a class="gkvSprite" href="#" id="hij" onClick="showhide('3')">Click 3</a> 

现在,当我点击我需要添加一个类被称为“选择”,为一个我选择。 我尝试使用setAttribute并添加jquery的类以及但不成功

当我通知document.getelementbyId(123)它发出链接。

有人可以帮助我吗?

由于提前
Alloi

+0

@Kartik尝试添加item_number它将工作 – ant 2010-03-18 11:33:27

回答

1

没有看到showhide的代码,没有办法看到你到底在做什么错。既然你提到的jQuery,这里是如何做你用它描述一下:

$('.gkvSprite').click(function() { 
    $(this).addClass('selected'); 
}); 

这也是值得注意的是,这是无效的以数字开头的ID。

+0

document.getElementById('abc')。setattribute(“className”,“some_class_name”); 我正在执行上面的代码。 当我提醒document.getElementById('abc')时,它显示http:// localhost/gkv /#而不是一个对象。 – Alloi 2010-03-18 11:40:47

+0

非常感谢:) – Alloi 2010-03-18 11:48:28

+0

函数是'setAttribute',它是区分大小写的。随着这一变化,你的代码适合我。还要注意,当你使用'alert'时,你会看到链接元素的“值”。如果您使用'console.log'来替代,您应该始终为调试做些什么,您会发现它实际上是整个DOM元素。 – 2010-03-18 11:49:20

7

id应以字母开头。

Official specification

ID和名称标记必须以字母开头([A-ZA-Z])和之后可以是任何数量的字母,数字([0-9]),连字符( “ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。


此外,

var element = document.getElementById('id'); 
element.className += "newClass"; 

showhide()应该做这样的事情上面。

+0

我改变了它的字母,但它仍然是相同的结果 – Alloi 2010-03-18 11:41:55

+0

它现在工作。非常感谢! :) – Alloi 2010-03-18 11:47:57

相关问题