【问题标题】:Javascript takes effect only some specific div elementJavascript 仅对某些特定的 div 元素生效
【发布时间】:2015-08-10 06:32:38
【问题描述】:

当我在一些 wikia 网站上更改我的皮肤时,我想在 url 中添加一些参数,我发现了一些代码并进行了一些修改

$("a").attr("href", function(i, href) {
    if( window.location.hostname === this.hostname ) {
        return href + "?useskin=monobook";
    }
});

效果很好。但是,此代码将参数添加到页面上的所有链接,我只希望它添加到某些特定 div 元素中的链接。示例:<div id="mw-content-text"></div>中的链接

我现在该怎么办?我仍然是 javascript 的菜鸟。任何帮助表示赞赏。谢谢大家。

【问题讨论】:

  • href 不适用于 div。您只需将它们添加到锚点上。如果您希望此代码在特定锚点上运行,请尝试向这些特定锚点添加一个类并将该类用作选择器

标签: javascript mediawiki


【解决方案1】:

你需要把它放在选择器中:

 $("#mw-content-text a").attr("href", function(i, href) {
     if( window.location.hostname === this.hostname ) {
         return href + "?useskin=monobook";
     }
 });

请注意,# 指的是 ID 属性 (<tag id="something">),它在 CSS 和 javascript 中用尖号表示。

【讨论】:

  • 哇,非常感谢。顺便说一句,如果我想添加多个选择器,我该怎么做?对不起,如果我给你添麻烦了。感谢你们对我的帮助。 ^ ^
  • 您可以使用逗号分隔的选择器 $('#id1 a , #id2 a') 来实现它,但您必须注意这一点。有时你需要做一个循环:$('#some a, #some2 a').each(function() { console.log($(this)); });Good lucky
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多