更改“ id =”的值与document.getElementById
-
06-07-2019 - |
题
这是正确的方法吗?
<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
已经很好了。
但在任何情况下,这似乎都是一种奇怪的方式来实现你想要做的事情。