我试图弄清楚我是否有几个段落,如何在点击特定对象时,仅针对该段落发出警报。
例如,继承我的代码:
HTML
URL url = new URL("https://api.github.com/users/ArturGudiev/hovercard?subject_type=repository&subject_id=90508877");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/vnd.github.hagar-preview+json");
JS
<div id="myDiv">StackOverflow</div>
<div id="myDiv">StackOverflow</div>
这段代码的作用是什么,只有第一个元素弹出...我知道我可以做另一个功能,但我试着只用一个这样做而且不知道.. 我知道ID是唯一的,不应该多次使用,但是如果div是由用户动态创建的,并且每当他们点击它的特定div时,我该如何做到这一点,div应该用弹出窗口警告。
答案 0 :(得分:0)
您需要遍历每个元素并单独将事件添加到项目中。
当动态添加项目时,您还需要将事件添加到它们中。
// Add listeners to the already create elements
[...document.querySelectorAll('div')].forEach(el => {
el.addEventListener('click', MyFunction)
})
let i = 10
// Dynamically create some elements
setInterval(() => {
let el = document.createElement('div')
el.textContent = 'StackOverflow ' + i++
el.addEventListener('click', MyFunction)
document.body.appendChild(el)
}, 2000)
function MyFunction() {
console.log(this.innerHTML)
}
&#13;
<div id="myDiv">StackOverflow 1</div>
<div id="myDiv">StackOverflow 2</div>
&#13;
答案 1 :(得分:0)
在1个html页面中不能是相同的id。 我有一个建议给你。 它的工作:
<div onclick="show__myDiv(this)">StackOverflow 1</div>
<div onclick="show__myDiv(this)">StackOverflow 2</div>
<script type="text/javascript">
function show__myDiv(t){
alert(t.innerHTML);
}
</script>
答案 2 :(得分:-1)
ID必须是唯一的。改变它们使其独一无二。