如何使用jQuery在此href属性中添加“#”?

时间:2011-11-11 04:31:18

标签: jquery

现在,我正在使用它:

// Scroll to matched dish
$("#scrolll").click(function() {
    $("a#scrolll").attr("href", $("li.matched").attr("id"));
    return false;
});

li.matched的ID添加到a#scroll的href属性。 例如,如果li.matched的ID为#menu123,则a#scrolll将如下所示:

<a id="scrolll" href="menu123">

但我想让它看起来像这样:

<a id="scrolll" href="#menu123">

有任何建议可以实现这一目标吗?

3 个答案:

答案 0 :(得分:4)

使用+ operator在开头添加#

// Scroll to matched dish
$("#scrolll").click(function() {
    $("a#scrolll").attr("href", "#" + $("li.matched").attr("id"));
    return false;
});

此外,由于您要从事件处理程序内部更改元素,因此可以使用$(this)而不是重新选择元素。 (Cyber​​nate首先发现了in his answer

答案 1 :(得分:2)

使用+运算符附加“#”。

此外,您可以将$("a#scrolll").attr替换为$(this).attr,因为代码位于a#scrolll

的点击处理程序中

试试这个:

$("#scrolll").click(function() {
    $(this).attr("href", "#" + $("li.matched").attr("id"));
    return false;
});

答案 2 :(得分:2)

只需连接字符串:

// Scroll to matched dish
$("#scrolll").click(function() {
    $(this).attr("href", '#' + $("li.matched").attr("id"));
    return false;
});

您可以使用+运算符将字符串连接在一起。我还用$(this)替换了您的冗余选择器。

另外,请注意第二个选择器li.matched。您不是100%确定只有一个元素与类.matched,因此如果恰好有两个元素与该类相同,则attr("id")可能是未定义的。