Javascript 查找具有特定属性的SVG元素

Javascript 查找具有特定属性的SVG元素,javascript,jquery,Javascript,Jquery,if(element.find('text[数据颜色]、path[数据颜色]、rect[数据颜色]、line[数据颜色]、circle[数据颜色]、polygon[数据颜色]、eliple[数据颜色]、polyline[数据颜色])).attr('data color')==color) 什么是更漂亮/更好的书写方式?如果将标签存储在say数组中,则可以稍微提高可读性: const selector = [ 'text', 'path', 'rect', 'line', 'c

if(element.find('text[数据颜色]、path[数据颜色]、rect[数据颜色]、line[数据颜色]、circle[数据颜色]、polygon[数据颜色]、eliple[数据颜色]、polyline[数据颜色])).attr('data color')==color)


什么是更漂亮/更好的书写方式?

如果将标签存储在say数组中,则可以稍微提高可读性:

const selector = [
  'text',
  'path',
  'rect',
  'line',
  'circle',
  'polygon',
  'ellipse',
  'polyline'
].map(tag => `${tag}[data-color]`)

if (element.find(selector).attr('data-color') === color) {}

你真的在乎标记名吗?是的,可以是其中的任何一个,但肯定是其中的一个。问题是:是否还有其他标记具有
数据颜色,你想忽略它们?例如,你是否有(比如)带有
数据颜色的
标记
,并且你有意跳过它?嗯,不。我需要看看每一个,找出哪一个有价值。抱歉,但你似乎不理解我。SVG图形中是否有其他元素也有
数据颜色
,您希望忽略这些元素?因为如果不是的话,
“[data color]”
本身就是您所需要的(正如我在回答中所说的)。只有当您有其他标签,而不是您列出的标签,并且它们有
数据颜色
时,才不会这样做。