【问题标题】:Referencing href value and comparing to another引用 href 值并与另一个值进行比较
【发布时间】:2013-11-22 05:07:42
【问题描述】:

我有这个:

var userName = "$('.home').children('.username').attr('href')";
$(".someclass[href*=userName]").parent().parent().addClass("extra-attribute");

我想根据一个类是否包含来自被引用的 href 的匹配项来向一个类添加“额外属性”。这样设置对吗?

【问题讨论】:

    标签: javascript jquery html href


    【解决方案1】:

    您的表达式是作为字符串包装的(删除它),对于第一行和第二行,您将 userName 包装为选择器的一部分,而不是 userName 变量的值。

    所以试试吧:

    var userName = $('.home').children('.username').attr('href');
    $(".someclass[href*=" + userName + "]").parent().parent().addClass("extra-attribute");
    

    还请注意,.attr('href') 只会为您提供集合 $('.home').children('.username') 返回的第一个 userName 锚标记的 href。如果您的 parent.parent 具有该选择器而不是其父级,则可以使用 closest('parentparentselector') 而不是执行 .parent().parent()。这样您也可以更改您的 html 结构,而无需在将来更改您的脚本。

    【讨论】:

    • 几乎,它需要引号。它们没有被添加到最后一个函数中。它最终不得不看起来像这样: var userName = $('.home').children('.username').attr('href'); var hrefName = "'" + 用户名 + "'"; $(".someclass[href=" + hrefName + "]").parent().parent().addClass("extra-attribute");
    • @user3015600 是的,如果你有保留字符,你可以这样做$('.someclass[href*="' + userName + '"]')
    【解决方案2】:

    关闭,需要字符串拼接:

    $(".someclass[href*=" + userName + "]")
    

    【讨论】:

      【解决方案3】:

      在继续之前,您应该考虑以下示例:D

      var v = "1 + 1"; alert(v); // shows "1 + 1"
      var v = 1 + 1;   alert(v); // shows "2"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-20
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        相关资源
        最近更新 更多