ユーザーがページ上の要素をクリックしたときに表示するポップアップウィンドウを取得しようとしています。私は、ポップアップが正しく機能するためのすべての機能を持っています。しかし、指定されたクラス名に一致するすべての要素に対して関数をポップアップさせるのに問題があります。私のコードは以下の通りです:同じクラス名を持つすべての要素に対してjavascript関数を呼び出す方法
<script>
function descPop() {
// Description pop-up
// Get the modal
var modalprod = document.getElementById('myModalTwo');
// Get the button that opens the modal
var btnprod = document.getElementsByClassName("add-but")[0];
// Get the <span> element that closes the modal
var spanprod = document.getElementsByClassName("prod-close")[0];
// When the user clicks on the button, open the modal
btnprod.onclick = function() {
modalprod.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
spanprod.onclick = function() {
modalprod.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modalprod) {
modalprod.style.display = "none";
}
}
}
</script>
さて、私は現在、このコードはVARのbtnprodにインデックス0を割り当てていることを知っています。したがって、クラス名 "add-but"と一致する最初の要素をクリックすると、ポップアップが表示されます。クラス名が "add-but"のすべてのタグがウィンドウをポップアップするように、どのようにすべての要素を割り当ててアクセスするのですか?
おかげ
ソリューション:あなたはjqueryのタグを追加しましたが、ここにはjqueryのはありません
function descPop() {
// Description pop-up
// Get the modal
var modalprod = document.getElementById('myModalTwo');
// Get the button that opens the modal
var btnprod = document.getElementsByClassName("add-but");
// Get the <span> element that closes the modal
var spanprod = document.getElementsByClassName("prod-close");
// When the user clicks on the button, open the modal
for (var i = 0; i < btnprod.length; i++) {
btnprod[i].onclick = function() {
modalprod.style.display = "block";
}
}
// When the user clicks on <span> (x), close the modal
for (var i = 0; i < spanprod.length; i++) {
spanprod[i].onclick = function() {
modalprod.style.display = "none";
}
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modalprod) {
modalprod.style.display = "none";
}
}
}
var $ btnprod = $( "。add-but")$ btnProd.on( "click"、function(){//あなたのコード})l .........のようなイベントをバインドします。 ............. USe jquery to do – Kenny
あなたのコードはJavaScriptですが、jqueryをタグ付けして、jqueryを試してみてください。 –
あなたは正しいです、私の謝罪jqueryにタグを付けるつもりはありません – basil3