変数を使用してdocument.getElementById
を呼び出している間はnull値が返されます。以下のサンプルコードは次のとおりです。document.getElementByIdの変数を渡すとNULLが返されます
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";
}
<div id="main" class="qpanel" id="Q3">
\t Q3
</div>
<div id="main" class="qpanel" id="Q2">
\t Q2
</div>
<div id="main" class="qpanel" id="Q6">
\t 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">
document.getElementById(str)
リターンはこれは実用的なソリューションである
は 'id'sは、文書内で一意でなければならない作業コードになります。 div内の二重 'id'に注意してください。ページが解析されると、2番目の 'id'は無視されます。 – Teemu
@Teemu実際にdivには2つのid属性があります。これはhtmlでは許可されていません。 – Esko