Javascript 在document.getElementById中传递变量将返回Null

Javascript 在document.getElementById中传递变量将返回Null,javascript,html,Javascript,Html,使用变量调用document.getElementById时,返回空值。下面是示例代码: 函数savenext(k) { qdd=k.id; var divs=document.getElementsByClassName(“qpanel”); 对于(var i=0;i这是有效的解决方案 <script > function savenext(k) { qdd=k.id; divs = document.getElementsByClassName("qpanel

使用变量调用
document.getElementById
时,返回空值。下面是示例代码:

函数savenext(k)
{
qdd=k.id;
var divs=document.getElementsByClassName(“qpanel”);

对于(var i=0;i这是有效的解决方案

<script >

function savenext(k)
{
    qdd=k.id;
    divs = document.getElementsByClassName("qpanel");
    for(var i=0;i<divs.length;i++) 
    {     
    console.log(divs[i])
        divs[i].style.display = "none";
    }
    str = qdd.replace(/SN/g, '');
    str='Q'+str;
    var d = document.getElementById(str);
    console.log(str)
    d.style.display = "block";
}


</script>
<div class="qpanel" id="Q3">
    Q3
</div>

<div class="qpanel" id="Q2">
    Q2
</div>

<div class="qpanel" id="Q6">
    Q6
</div>

<input type="button" value="Save and next" id="SN3" onclick="savenext(this)" class="savenext">
<input type="button" value="Save and next" id="SN2" onclick="savenext(this)" class="savenext">
<input type="button" value="Save and next" id="SN6" onclick="savenext(this)" class="savenext">

函数savenext(k)
{
qdd=k.id;
divs=document.getElementsByClassName(“qpanel”);

对于(var i=0;i有两件事需要注意

*每个项目应该只有一个id。这里每个div都有一个主id和另一个id Q3。 *ID应该是唯一的,但不是必需的

这是工作代码

<!doctype html>
<html>
<body>
<div class="qpanel" id="Q3">
    Q3
</div>

<div class="qpanel" id="Q2">
    Q2
</div>

<div class="qpanel" id="Q6">
    Q6
</div>

<input type="button" value="Save and next" id="SN3" onclick="savenext(this)" class="savenext">
<input type="button" value="Save and next" id="SN2" onclick="savenext(this)" class="savenext">
<input type="button" value="Save and next" id="SN6" onclick="savenext(this)" class="savenext">
<script>
function savenext(k)
{
    qdd=k.id;
    var divs = document.getElementsByClassName("qpanel");
    for(var i=0;i<divs.length;i++) 
    {
        divs[i].style.display = "none";
    }
    str = qdd.replace(/SN/g, '');
    str='Q'+str;
    var d = document.getElementById(str);
    d.style.display = "block";
}

</script>
</body>
</html>

第三季度
问题2
问题6
函数savenext(k)
{
qdd=k.id;
var divs=document.getElementsByClassName(“qpanel”);

for(var i=0;i
id
s在文档中必须是唯一的。请注意divs中的双
id
s。解析页面时,将忽略第二个
id
。@Teemu实际上div有两个id属性。这在html中是不允许的。