javascript - 如何将类添加到 svg 路径?

标签 javascript jquery svg

首先,我检查单击的按钮父级是否具有给定路径的相同类,然后如果路径类与单击的父级按钮类匹配,它应该向路径本身添加一个类。

<ul>
  <li class="modern">
   <button>Ex 1</button>
  </li>
  <li class="classic">
   <button>Ex 2</button>
  </li>
<ul>

<svg>
  <path class="modern"></path>
  <path class="classic"></path>
</svg>

$("button").on("click", function() {
    var periodClass = $(this).parent().attr("class");
    $("svg path").each(function() {
        $("svg path").not('.'+periodClass).removeClass("active");
        $('svg path.'+periodClass).target.classList.add('active');
    });
});

也试过

$('svg path.'+periodClass).addClass('active');

最佳答案

使用查询选择器或查看: JQuery can't add a class to an SVG

$("button").on("click", function(e) {
  var periodClass = $(this).parent().attr("class");
  var paths = document.querySelectorAll("path");
  var pathToActive =  document.querySelector("path."+periodClass);
  for (var i=0;i<paths.length;i++) {
   paths[i].classList.remove("active");
  }
  pathToActive.classList.add('active');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="modern">
   <button>Ex 1</button>
  </li>
  <li class="classic">
   <button>Ex 2</button>
  </li>
<ul>

<svg>
  <path class="modern"></path>
  <path class="classic"></path>
</svg>

关于javascript - 如何将类添加到 svg 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611747/

相关文章:

javascript - 用户如何在 session 期间调整 html 表格列宽

css - 剪辑路径不适用于 chrome

jquery - 隐藏 SVG 对象 - jQuery

JavaScript 计数过滤变量上的匹配项

javascript - 为什么在此示例中放弃 'this' 是有益的

javascript - 为什么这个 promise 不起作用?

JavaScript 库还是原始编码?

java - 如何清除JavaFX GraphicsContext中的路径?

javascript - 为什么鼠标悬停时按钮会闪烁?

jquery - 使用 jquery 和 cookie 切换和保留状态