Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取已单击段落的内容?_Javascript_Html_Events_Onclick - Fatal编程技术网

Javascript 如何获取已单击段落的内容?

Javascript 如何获取已单击段落的内容?,javascript,html,events,onclick,Javascript,Html,Events,Onclick,我有10个段落,每个段落显示一个从1到10的数字。我需要一个函数,当点击段落时,读取其描述并将其存储在数组中。到目前为止,我设法做到了这一点: function readValue(p) { var text = document.getElementsByTagName('p')[0].innerHTML; console.log(text); } 但当我点击第5段时,它仍然会将1记录到控制台 如何更改它以获取实际单击的段落的内容?您正在阅读并打印的只是第一段的值。但是,您

我有10个段落,每个段落显示一个从1到10的数字。我需要一个函数,当点击段落时,读取其描述并将其存储在数组中。到目前为止,我设法做到了这一点:

function readValue(p) {
    var text = document.getElementsByTagName('p')[0].innerHTML;

    console.log(text);
}
但当我点击第5段时,它仍然会将
1
记录到控制台


如何更改它以获取实际单击的段落的内容?

您正在阅读并打印的只是第一段的值。但是,您需要读取单击段落的文本值

向事件处理程序传递一个对象,该对象具有一个
target
属性,该属性保存对生成事件的元素的引用

let para=document.getElementsByTagName(“p”);
[…para].forEach(elem=>elem.addEventListener('click',readValue));
函数读取值(e){
让text=e.target.textContent;
console.log(文本);
}
1

二,

三,

四,


5

文档。getElementsByTagName('p')[0]表示希望找到第一段,因此始终会记录第一段。我将通过事件委托解决这个问题,方法是将
单击
事件绑定到父级,然后检查
事件.target
是否是一个段落。
如果以后以编程方式添加更多段落,那么通过委派事件,您也可以获得正确的段落

document.querySelector(“#content”).addEventListener('click',函数(事件){
如果(event.target.nodeName=='P'){
log(event.target.innerHTML)
}
})

第1款

第2款

第3款

第4段

第5段

第6段

第7段


您也应该共享您的html,这样我们就可以有一个工作代码段。对不起,这是上次尝试的遗留问题。它实际上是文本。您应该通过以下方式避免getElement。。。您应该使用querySelector(All)来代替它。然后可以使用addEventListener(“单击”,function(){})来监视单击。接下来使用innerHTML或类似的其他函数获取内容