代码之家  ›  专栏  ›  技术社区  ›  user393267

如何从event.target获取DOM财产,以便进行比较?

  •  0
  • user393267  · 技术社区  · 12 年前

    我想知道我的点击是否在特定的Highcharts图表上。我不能在图表上使用单击事件,因为该区域位于标题中,而不是图表本身,并且Highcharts不支持在绘图区域以外的任何区域上单击事件。

    $(document).mouseup(function(event) {
        var clickedElement = event.target;
        if (clickedElement == "chart_1")
            console.log('yes');
        console.log(clickedElement);
    });
    

    我将事件.target保存在变量中;然后我想检查我点击的是不是一个特定的图表(我在同一个页面上有多个图表,每个图表都在其div中)。

    这是我从console.log得到的输出;当我点击Highchart时:

    <rect x=​"0" y=​"0" width=​"880" height=​"150" strokeWidth=​"0" rx=​"15" ry=​"15" fill=​"url(#highcharts-2)​" class=​" highcharts-background">​</rect>​
    

    我想检查填充情况,看看我单击哪个图表,然后触发事件。

    我尝试使用字符串搜索,但失败了,因为event.target返回的对象是一个DOM(据我所知,我只是从这个开始);那么我如何访问变量中的值,并对它们进行比较,以便查找类或填充的特定值?

    编辑:

    谢谢Adeneo! 有效的解决方案是使用.getAttribute的解决方案。当我单击填充为“url(#highcharts-2)”的图表时,它将返回“yes”

    $(document).mouseup(function(event) {
        var clickedElement = event.target;
        if (clickedElement.getAttribute('fill') == "url(#highcharts-2)")
            console.log('yes');
    });
    

    当我尝试时,其他的都不起作用,比较总是失败;这是唯一有效的。再次感谢

    3 回复  |  直到 12 年前
        1
  •  0
  •   adeneo    12 年前

    您可以使用 getAttribute

    clickedElement.getAttribute('fill')
    
        2
  •  0
  •   Phuong Nguyen    12 年前

    只需将其包装在jQuery中并使用prop()获取属性:

    $(clickedElement).prop("fill")
    
        3
  •  0
  •   Manish Kr. Shukla    12 年前

    如果您正在使用jquery版本<jQuery 1.6,使用

    $(clickedElement).attr("fill")
    

    jQuery版本的其他方面>jQuery 1.6使用

    $(clickedElement).prop("fill")