【问题标题】:How can I select a generated title tag with jQuery?如何使用 jQuery 选择生成的标题标签?
【发布时间】:2016-06-08 16:56:34
【问题描述】:

我正在 Drupal 站点上制作 SVG 地图 (Raphael),但由于某些超出我的原因,我根本无法让 jQuery 影响 SVG 地图。我想使用title="skane" 值作为锚点来操作<a> 及其子项(路径)。

一个奇怪的事情是,当在检查器中查看生成的 Raphael 代码时,它会显示 title="skane",但如果我将整个块复制到 jsFiddle,我会得到 xlink:title="skane"——这是怎么回事?

在 Fiddle 中,使用 $("a[xlink\\:title=skane]").hide(); 似乎工作得很好,但是当我尝试将它合并到我的脚本中时,它什么也不做,即使在页面加载后很好地输入控制台。

如果我使用$('a').hide(); 定位所有<a> 标签,整个地图会按预期消失,那么如何只选择<a>title="skane"

Link to jsFiddle example

非常感谢任何帮助!

【问题讨论】:

  • 你的 Fiddle 只显示了一个带有 xlink:title 属性的 <a> 元素,因此它对寻找解决方案没有帮助。
  • 正如我所说:“在检查器中生成的 Raphael 代码显示 title="skane",但如果我将整个块复制到 jsFiddle,我会得到 xlink:title="skane"”。这是可以预期的吗?至少我以前从未注意到这一点。
  • 您应该使用 Raphael 提供一个运行示例,而不是您遇到的错误的复制输出。
  • 是的,虽然我同意这将是最佳的,但需要大量工作才能将其从其余代码中分离出来,以解决我希望的小问题。如果在那之前找不到任何帮助,我可能会在明天更新 Fiddle。

标签: javascript jquery svg drupal-7 raphael


【解决方案1】:

你试过$("a[title='skane']").hide();吗?

【讨论】:

  • 是的,它只是在控制台中返回[]
【解决方案2】:

我找到了这个解决方案。但是我不确定这是否是您需要的。

var parameters = document.getElementsByTagName("a");

for (var i = 0; i < parameters.length; i++) {
    var attribs = parameters[i].attributes;
    for (var j = 0; j < attribs.length; j++) {

        if (attribs[j].localName == "xlink:title" && attribs[j].value == "skane") {
            parameters[i].style.display='none';
        }
    }
}

希望对你有帮助

【讨论】:

  • 您的解决方案在 jsfiddle 上使用时确实有效,但是在实时站点的控制台中运行它会在控制台中返回未定义,因此在此过程中似乎存在某种干扰(尽管我不在工作站,但实际上我还没有正确部署代码)。但是,如果我确实让它工作,在我看来仍然应该有一个更简单的解决方案(当然不会从你的工作中拿走任何东西!)
猜你喜欢
  • 2011-07-20
  • 2012-01-10
  • 2012-09-02
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多