这是正确的方法吗?

<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>

我想要id =&quot; test&quot;改为id =&quot; nextstep&quot;如果请求= 0。

有帮助吗?

解决方案

你可以尝试:

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

其他提示

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

<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>

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

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

你的getElementById('test')部分是正确的,但只是抛出“.setAttribute('id','nextstep');&quot;

希望有所帮助!

  

if(self.href!=&quot;#&quot;)

有你的问题。链接href由浏览器规范化,因此链接&#8216;#&#8217;在页面&#8216; http://www.example.com/ &#8217; href属性为&#8216; http://www.example.com/# &# 8217;并且与条件不符。

避免使用名称&#8216; self&#8217;,因为它与全局对象的名称(又名&#8216;窗口&#8217;)发生冲突。你可以避免笨拙地传递自我&#8217;通过从JavaScript分配处理程序:

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top