这是正确的方法吗?
<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”。
答案 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
已经很好了。
但在任何情况下,这似乎都是一种奇怪的方式来实现你想要做的事情。