使用DOM操纵传递元素及其应用样式

问题描述

这里的目标是使用DOM操纵传递一个元素(特别是被单击的一个元素),我希望svg元素与它的所有应用样式一起显示。截至目前,该svg尚未显示任何样式。

我在想有一种方法可以使用this.getAttributethis.content通过clicked元素的所有样式传递这些元素,但是这些方法返回为undefined,这就是为什么我目前使用this.innerHtml (至少得到点击的元素,我可以对其使用DOM Manipulation)。

将eventListeners添加到每个svg元素,并与一个函数配对。 this.innerHTML似乎有用(只是元素,而没有样式)。

svg.addEventListener('click',function)

在下面的函数中,我使用了.content和getAttribute,但返回的值未定义

function () {
    var clickedSVG = this.innerHTML
    document.getElementById('container2').innerHTML = clickedSVG```

解决方法

如果要在click事件上将样式应用于元素,则要使用classList属性向该元素添加一个类。下面是一个在点击事件中切换元素颜色的示例。

首先,您创建要切换的HTML元素,并为其指定ID和其默认类:

Availability

然后,您创建两个CSS类,一个用于默认样式,另一个用于在click事件上应用的样式:

<svg id="icon" class="not-clicked"></svg>

然后,您创建一个javascript函数,在其中定义您想要在click事件上发生的元素,然后使用事件监听器调用该函数:

.not-clicked {
      background-color: black;
    }    
.clicked {
      background-color: red;
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...