我现在有以下中的JQuery 1.3.2

for (i = 0; i < totalPages; i++) {
   var newDiv = $("<a href=\"#\">").append(i+1).click(function() 
   { 
      alert(i+1);
   });
   $('#pageLinks').append(newDiv).append(" ");
}

此点击产生元件被返回总页数值,而不是i的循环期间的值时输出作为所需号码的列表,但该警报。我如何获得的点击事件,提醒我的值呢?

由于

有帮助吗?

解决方案

尝试此

for (i = 0; i < totalPages; i++) {
   var newDiv = $("<a href=\"#\">").append(i+1).click(function() 
   { 
      alert(this.text);
   });
   $('#pageLinks').append(newDiv).append(" ");
}

其他提示

此代码应该整理出来你的问题:

for (i = 0; i < totalPages; i++) {
    var newDiv = $("<a href=\"#\">")
        .append(i+1)
        .click(
            function() { 
                alert($(this).html());
            }
         );
    $('#pageLinks').append(newDiv).append(" ");
}

比如说,如果你没有数的文本作为链接的一部分,我喜欢这样的值编码到ID,它会给你这样的:

<body>
<div id="pageLinks"><!-- --></div>

<script>
var totalPages = 10, newDiv;
for (i = 0; i < totalPages; i++) {
  var link = "<a href=\"#\" id=\"link-"+(i+1)+"\">"+(i+1)+"</a>";
  newDiv = $(link).click(function() {
    alert($(this).attr('id').split('-')[1]);
  });
  $('#pageLinks').append(newDiv).append(' ');
}
</script>
</body>

这是一个范围相关的问题。你需要周围形成使用的语句for循环,我所说的范围后卫封闭。是这样的:

var totalPages = 10;
for (i = 0; i < totalPages; i++) {
    (function() {
        var no = i + 1;
        var newDiv = $("<a href=\"#\">").append(i+1).click(function() {
        alert(no);
    });
    $('#pageLinks').append(newDiv).append(" ");
})();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top