现在,我正在使用它:
// 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">
有任何建议可以实现这一目标吗?
答案 0 :(得分:4)
使用+
operator在开头添加#
。
// Scroll to matched dish
$("#scrolll").click(function() {
$("a#scrolll").attr("href", "#" + $("li.matched").attr("id"));
return false;
});
此外,由于您要从事件处理程序内部更改元素,因此可以使用$(this)
而不是重新选择元素。 (Cybernate首先发现了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")
可能是未定义的。