Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改“的值”;id=”号;使用document.getElementById_Javascript_Request_Onclick_Document_Href - Fatal编程技术网

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

Javascript 更改“的值”;id=”号;使用document.getElementById,javascript,request,onclick,document,href,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; func

这是正确的方法吗

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

var=2;
功能请求(self)
{if(self.href!=“#”)
请求-=1;
如果(请求===0)
document.getElementById(“test”).id=“nextstep”;}
如果请求=0,我希望id=“test”更改为id=“nextstep”。您可以尝试:

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

这正是你要做的,只要你用脚本标签包装它

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

如果(请求===0){
document.getElementById('test').id=“nextstep”;
}
如果您试图在单击该锚点时触发此操作,则应使用:

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

函数changeID(){
如果(请求===0){
document.getElementById('test').id=“nextstep”;
警报(“测试!”);
}
}

编辑:在我发布此消息后,您更改了问题的内容…

您需要使用“setAttribute”更改锚定标记的ID

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

希望有帮助

如果(self.href!=“#”)

这是你的问题。链接href由浏览器规范化,因此页面“”上的链接“#”的href属性为“”,与条件不匹配

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

document.getElementById('load').onclick= request;
您可以在request()中使用'this',而不是
onclick
属性。request()还应
返回false
停止跟随链接(使浏览器滚动到顶部)。更好的做法是使用
(或
),因为它是一个操作按钮,而不是可以在新窗口或书签中打开的链接。(您始终可以使用CSS使其看起来不像按钮。)

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


但这一切似乎都是一种奇怪的方式来处理您在任何情况下想要做的事情。

Safari 4,正如我在其他人身上测试的那样,但这不起作用?您可能想看看,因为xhtml 1.0不同于html 4。您可能会发现HTML4更好。有关setAttribute的更多信息以及为什么它可能不起作用,可以查看jQuery是否可以做到这一点?因为我已经在使用jQuery了,所以这可能会使它更简单,并使它工作起来?我建议看看我对你的另一个问题的回答,寻找一种完全不同的方法来解决你的问题,而不必调整HREF和ID——只需根据应用程序的状态添加/删除处理程序。是的,你明白我现在想做什么吗?hahaNo需要使用
setAttribute
(除非我们讨论的是XML DOM)
element.id='nextstep'
在这种情况下就足够了。