使用document.getElementById更改“id =”的值

时间:2009-09-12 00:38:34

标签: javascript request onclick document href

这是正确的方法吗?

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

如果要求= 0,我希望id =“test”更改为id =“nextstep”。

4 个答案:

答案 0 :(得分:5)

你可以尝试:

document.getElementById('test').setAttribute('id', 'nextstep');

答案 1 :(得分:1)

只要你将它包装在脚本标签中,这就是你要做的事情......

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

如果您试图通过单击该锚点来触发此操作,那么您将使用:

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

编辑:我发布此帖后,您更改了问题的内容......

答案 2 :(得分:1)

您需要使用'setAttribute'来更改锚标记的ID。

你有getElementById('test')部分,但只是抛出“.setAttribute('id','nextstep');”

希望有所帮助!

答案 3 :(得分:1)

  

if(self.href!=“#”)

有你的问题。链接href由浏览器规范化,因此页面“http://www.example.com/”上的链接“#”的href属性为“http://www.example.com/#”且与条件不匹配。

避免使用名称'self',因为它与全局对象的名称(也称为'window')冲突。你可以通过从JavaScript分配处理程序来避免笨拙地传入'self':

document.getElementById('load').onclick= request;

而不是onclick属性,那么你可以在request()中使用'this'。 request()还应该return false;来停止跟踪链接(使浏览器滚动到顶部)。更好的是使用<button>(或<input type="button">),因为它是一个操作按钮,而不是您可以在新窗口或书签中打开的链接。 (您始终可以使用CSS使其看起来不像按钮。)

不要对HTML使用setAttribute(),它在与此用法无关的IE中存在问题。设置element.id已经很好了。

但在任何情况下,这似乎都是一种奇怪的方式来实现你想要做的事情。