Kuidas leida klõpsatava nupu id?
<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>
function reply_click()
{
}
Sa pead saatma ID funktsiooni parameetrina. Tehke seda nii:
<button id="1" onClick="reply_click(this.id)">B1</button>
<button id="2" onClick="reply_click(this.id)">B2</button>
<button id="3" onClick="reply_click(this.id)">B3</button>
<script type="text/javascript">
function reply_click(clicked_id)
{
alert(clicked_id);
}
</script>
See saadab ID this.id
kui clicked_id
, mida saate kasutada oma funktsioonis. [See it in action here.][1][1]
Üldiselt on asju lihtsam korrastada, kui te eraldate oma koodi ja märgistuse. Määratlege kõik oma elemendid ja seejärel määratlege oma JavaScripti sektsioonis erinevad toimingud, mida nende elementidega tuleks teha.
Kui sündmuse käsitseja kutsutakse, kutsutakse seda selle elemendi kontekstis, millele klikiti. Seega viitab identifikaator this sellele DOM-elemendile, millele te klikkisite. Seejärel saab selle identifikaatori kaudu ligi elemendi atribuutidele.
Näiteks:
<button id="1">Button 1</button>
<button id="2">Button 2</button>
<button id="3">Button 3</button>
<script type="text/javascript">
var reply_click = function()
{
alert("Button clicked, id "+this.id+", text"+this.innerHTML);
}
document.getElementById('1').onclick = reply_click;
document.getElementById('2').onclick = reply_click;
document.getElementById('3').onclick = reply_click;
</script>
(Ma arvan, et atribuut "id" peab algama tähega. Võin eksida.)
Võiksite kasutada sündmuse delegeerimist...
<div onClick="reply_click()">
<button id="1"></button>
<button id="2"></button>
<button id="3"></button>
</div>
function reply_click(e) {
e = e || window.event;
e = e.target || e.srcElement;
if (e.nodeName === 'BUTTON') {
alert(e.id);
}
}
...kuid see eeldab, et te olete suhteliselt hästi kursis hullumeelse sündmuste mudeliga.