DOM - 选择 HTML 元素的特定属性 [重复]

Posted

技术标签:

【中文标题】DOM - 选择 HTML 元素的特定属性 [重复]【英文标题】:DOM - select a specific property of an HTML element [duplicate] 【发布时间】:2020-04-18 13:41:15 【问题描述】:

我正在使用 DOM events delegates 并试图弄清楚为什么我不能选择除了 ID 属性之外的特定 html 元素。

var html = ' <div class="item__clearfix" id="770" prop2="100"><div 
            class="item__description">%description%</div><div class="right clearfix"><div 
            class="item__value">%value%</div><div class="item__delete"><button class="item__delete-- 
            btn"><i class="ion-ios-close-outline"></i></button></div></div></div>'

document.querySelector('.item__clearfix').addEventListener('click', function(event)
      console.log(event.target.parentNode.parentNode.parentNode.parentNode);
);

我应该得到的 parentNode 是:div class="item__clearfix" id="770"

当我选择它的 ID 属性时,我可以得到“770”,但如果我尝试选择不同的属性,我将无法识别。这是为什么呢?

event.target.parentNode.parentNode.parentNode.parentNode.id >> 770
event.target.parentNode.parentNode.parentNode.parentNode.prop2 >> unidentified

抱歉,如果我没有正确解释。

【问题讨论】:

【参考方案1】:

使用getAttribute('property_name') 获取其他属性,因为 id 可以公开访问。

【讨论】:

所以对于其他所有属性,getAttribute 都可以吗? 是的,getAttribute 就可以了。【参考方案2】:

element.id 在您将其用作 DOM 对象时,会获取计算出的元素的 id。对于不是对象属性的其他属性,您需要使用.getAttribute(),因为没有prop2名称的DOM对象的计算属性。

event.target.parentNode.parentNode.parentNode.parentNode.getAttribute("prop2")

【讨论】:

以上是关于DOM - 选择 HTML 元素的特定属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取具有特定名称掩码的所有 DOM 元素 [重复]

关于jQuery的选择器

Jquery查找具有特定数据属性的元素[重复]

PHP无法从特定的DOM元素中检索值[重复]

使用 HTML DOM 在文档中查找元素

如何选择具有两个数据属性的DOM节点进行更新[重复]