2014-09-06 91 views
3
<div id="resultperpage"> 
    <span><a>12</a></span> 
    <span><a>24</a></span> 
    <span><a>48</a></span> 
    <span><a>98</a></span> 
</div> 


$('#resultperpage span').click(function() { 
    $('#resultperpage span').html($(?).html() + 'A')); 
}); 

<div id="resultperpage"> 
    <span><a>12A</a></span> 
    <span><a>24A</a></span> 
    <span><a>48A</a></span> 
    <span><a>98A</a></span> 
</div> 

请帮我更换问号jQuery的功能,使输出文字+“A”更新内容

回答

2

您可以使用html()回调函数,而不是全部更换他们

$('#resultperpage span').click(function() { 
    $('#resultperpage span').html(function(_, html) { 
     return html + 'A'; 
    }); 
}); 

或更换的只是点击一个

$('#resultperpage span').click(function() { 
    $(this).html(function(_, html) { 
     return html + 'A'; 
    }); 
}); 
+0

很好的解决方案,在这里是[小提琴](http://jsfiddle.net/hc35pyaq /)。 – dashtinejad 2014-09-06 13:06:56

+0

我想要的是,当用户点击任何span元素时,所有span元素文本都应该更改为旧文本+'A'。这怎么可能? – 2014-09-06 13:08:04

+0

@ars,用函数参数阅读'html()'的文档。它会循环收集所有元素 – charlietfl 2014-09-06 13:10:17

0

您还可以使用t他each()功能:

$('#resultperpage span').click(function() { 
    if($(this).html().substr($(this).html().length-1)!='A'){ 
     $('#resultperpage span').each(function(){ 
      $(this).html($(this).html() + 'A'); 
     }); 
    } 
}); 

DEMO

1

JQuery的

$("#resultperpage span a").each(function(){ 
    var txt= $(this).text(); 
    $(this).text(txt+"A"); 
}); 

DEMO