问问题
204 次
5 回答
5
问题是您没有加name
引号,因此 Javascript 会查找名为的变量name
但找不到。您应该将其更改为:
var n = $(this).attr("name");
除此之外,您id
的 s 并不是唯一的。这是非法的,实际上保证将来会给您带来问题。按照@nbrooks 的建议,将过度使用的更改id
为class
.
于 2012-07-11T10:51:02.313 回答
2
使用引号作为属性名称
$(document).ready(function() {
$('#link').click(function() {
var n = $(this).attr("name"); //alerts undefined <- quotes here
alert(n);
$('#results').html(' ').load('/donate/?n=' + n);
});
});
稍后编辑:不要使用重复的 ID ...改用类!
于 2012-07-11T10:50:50.660 回答
2
您的两个链接都具有相同的id
属性,HTML 规范要求这些属性是唯一的。jQuery 只给你一个元素。改用类属性/选择器组合:
<li><a class='link' href="#" name="Some name1 ">Some link1</a> </li>
<li><a class='link' href="#" name="Some name2">Some link2</a> </li>
$(".link").click(function() {
var n1 = $(this).attr("name"); //Name should be a string here
var n2 = this.name //name should be a variable here
});
于 2012-07-11T10:51:07.400 回答
2
$('#link').click(function() {
var n = $(this).attr("name");
});
于 2012-07-11T10:52:39.223 回答
1
首先把你的 li 改成这些
<li><a class='link' href="#" name="Some name1 ">Some link1</a> </li>
<li><a class='link' href="#" name="Some name2">Some link2</a> </li>
使用 class 而不是 id,因为这违反了 CSS ..
然后将您的 jquery 更改为此
$(document).ready(function() {
$('.link').click(function() {
var n = $(this).attr('name'); //alerts undefined
alert(n);
$('#results').html(' ').load('/donate/?n=' + n);
});
});
采用 。而不是 # 和你的集合
于 2012-07-11T10:52:04.237 回答