Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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 通过事件访问parentElement属性_Javascript_Html_Dom - Fatal编程技术网

Javascript 通过事件访问parentElement属性

Javascript 通过事件访问parentElement属性,javascript,html,dom,Javascript,Html,Dom,我有一个div,我称之为quote_div,是parentElement。它包含两个input type=“number”元素,一个元素,我称之为r\u lbl(变量名),另一个元素称为r\u position(一个div中有四个元素) 我在div上放置了一个事件侦听器,以便在更改input type=“number”元素时可以执行计算 quote_div.addEventListener(“变更”,计算成本) 现在我试图使用事件触发器e(被解析为calculateCost(e)函数)访问div

我有一个div,我称之为quote_div,是parentElement。它包含两个
input type=“number”
元素,一个
元素,我称之为r\u lbl(变量名),另一个
元素称为r\u position(一个div中有四个元素)

我在div上放置了一个事件侦听器,以便在更改
input type=“number”
元素时可以执行计算

quote_div.addEventListener(“变更”,计算成本)

现在我试图使用事件触发器e(被解析为calculateCost(e)函数)访问div上的r_position元素,但是我得到了一个未定义的错误,这很奇怪,因为我已经预定义了r_position的值

console.log("li element position: " + e.target.parentElement.r_position.value);

这样做不可能吗?如果是,我还不明白什么?

根据您的HTML结构,您可以使用或:

const div=document.getElementById('quote_div');
div.addEventListener('change',(e)=>{
const target=e.target;
常量标签=target.previousElementSibling;
console.log(label.innerText);
});

标签1
标签2

是这样吗?我认为target引用了触发事件的input type=“number”元素。
未定义
不是错误,而是一个值
e.currentTarget
包含对事件附加到的元素的引用。但是,不清楚“元素称为r_位置”是什么意思,该元素的r_位置是
id
还是
name
?如果是这种情况,最好使用适当的DOM getter来获取引用,而不是直接点表示法。如果您提供一个HTML示例而不是描述它,那么回答这个问题会更容易。@Teemu我在一个函数中动态创建了r\u位置:var r\u position=document.createElement(“标签”)。所以r_位置就是变量名本身。我想用java的思路,用点表示法来访问东西,我只是不确定它是否可能,因为我得到的是undefinedAh的值,好吧。然后它不是父元素的属性,只是JS变量的名称。使用
e.currentTarget.querySelector('label'))
要获取对标签的引用,然后检索
textContent
,标签没有值。(或者
.queryselectoral('label')[1]
,如果目标标签不是div中的第一个标签。)@Teemu,这是有道理的。我认为在标签的情况下,使用.value会给出文本内容。我很感激insight@Danzinger感谢链接到NondDocumentTypeChildNode,我不知道它存在,但它可能正是我所需要的。