Javascript 如何获取父元素';IE 11中事件的属性?

Javascript 如何获取父元素';IE 11中事件的属性?,javascript,html,internet-explorer-11,Javascript,Html,Internet Explorer 11,我有以下几点,可以在chrome和其他浏览器中使用,但不能在IE11中使用。我不确定IE不支持这段代码的哪一部分。在所有其他浏览器中,我在控制台日志中单击了svgimage,但在IE中出现错误: 无法获取未定义或空引用的属性“getAttribute” 试试这个例子: var el = event.target.parentElement; var v = getAttribute(el, "data-attribute"); function getAttribute

我有以下几点,可以在chrome和其他浏览器中使用,但不能在IE11中使用。我不确定IE不支持这段代码的哪一部分。在所有其他浏览器中,我在控制台日志中单击了svgimage,但在IE中出现错误:

无法获取未定义或空引用的属性“getAttribute”


试试这个例子:

var el = event.target.parentElement;
var v = getAttribute(el, "data-attribute");

function getAttribute (dom, attr) {
            if (dom.getAttribute !== undefined) {
                return dom.getAttribute(attr);
            } else if (dom[attr] !== undefined) {
                return dom[attr];
            } else if (dom.getAttributeNode !== undefined) {
                return dom.getAttributeNode(attr);
            }else{
                  return null;
            }
        }

我试着测试你的代码,发现它在其他浏览器中也出现了错误

我建议尝试参考下面的一个示例,它将适用于大多数浏览器,包括IE浏览器


很抱歉,您的浏览器不支持内嵌SVG。
document.getElementById('content')。addEventListener('click',handle_click);
函数句柄\单击(事件)
{  
var target=event.currentTarget;
var parent=target.parentElement.nodeName;
console.log(target.getAttribute('data-attribute'));
}  

请将此添加到问题中。@Jean,这可能是一个更好的链接:此外,您可能应该回答这个问题(以及任何解决方法).Related:@isherwood-我在测试期间发现,我可以在IE中使用event.currentTarget而不是target。我不确定两者之间的区别是什么,因为一些解释会使这个答案更好。似乎您正在适应对
getAttribute()
可能缺乏支持的情况。
var el = event.target.parentElement;
var v = getAttribute(el, "data-attribute");

function getAttribute (dom, attr) {
            if (dom.getAttribute !== undefined) {
                return dom.getAttribute(attr);
            } else if (dom[attr] !== undefined) {
                return dom[attr];
            } else if (dom.getAttributeNode !== undefined) {
                return dom.getAttributeNode(attr);
            }else{
                  return null;
            }
        }