要素に子ノードがあるときにモーダルを表示するボタンを取得しようとしています。だから、それをクリックすると、関数がアクティブになり、それに応じてモーダルが表示されます。これは、id "myBtn"をbutton
要素に追加することで行います。未知参照を取得するボタンの機能を変更するときにエラーが発生する
これが私のHTMLです:
<li id='parentNode'>
<button onclick="child_check()" id="button" class='customer-btn'><a href='#'>Customer 6</a></button>
<ul>
<li id='childNode'>
<a href='#'>Customer A</a>
</li>
</ul>
</li>
そして、これは私のJSです:
<script>
var modal = document.getElementById('myModal');
// Get the button that opens the modal
var btn = document.getElementById(" myBtn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
// Check to see if the list element has a child
function child_check() {
var child = document.getElementById("childNode");
var parent_check = document.getElementById("parentNode").contains(child);
var parent = document.getElementById("parentNode")
var button = document.getElementById("button")
if (parent_check){
button.id += " myBtn";
// Code that activates modal
// Get the modal
// When the user clicks on the button, open the modal
}
}
</script>
任意のヘルプ?私はここに道オフだ
編集:はまだ次のエラーなって、動作しているようだ:Uncaught TypeError: Cannot read property 'contains' of null at child_check (profile:259)
'それはボタンelement'にID「myBtnです。」を追加することでこれを行うだろう - 実際にそれがparentNodemyBtn''にparentNode' 'からIDを変更します - だけ' getElementById'が機能した場合 - あなたは 'ドキュメントを意味しました.getElementById'おそらく –
@JaromandaXはあなたのID調整に関して正しいです。おそらくあなたは '='ではなく '+ ='を望みます。また: "とそれに応じてモーダルを表示するには、id" myBtn "をボタン要素に追加することでこれを行います" - 要素にIDを追加するだけでモーダルが起動されると主張していますか?それは間違って聞こえるから... –
@JaromandaX遅い返事をおかけして申し訳ありませんが、実際の要素ではなく、IDを参照していたことがわかりませんでした。私は親要素に新しいIDを追加したいだけです。 – Amon