0
4

5 回答 5

5

问题是您没有加name引号,因此 Javascript 会查找名为的变量name但找不到。您应该将其更改为:

var n = $(this).attr("name");

除此之外,您id的 s 并不是唯一的。这是非法的,实际上保证将来会给您带来问题。按照@nbrooks 的建议,将过度使用的更改idclass.

于 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('&nbsp;').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('&nbsp;').load('/donate/?n=' + n);
});
});

采用 。而不是 # 和你的集合

于 2012-07-11T10:52:04.237 回答