如何在<li> <a> </a> </li>之间更改文字

时间:2012-04-11 16:07:58

标签: javascript

抱歉愚蠢的问题,但我无法弄清楚(初学者)

我有一个包含以下项目的UL列表:

<div id="some_list"> 
<li ><a href="#">Hardware &ndash; HP Proliant DL145G2 AAA</a> 

如何更改OnClick AAA到BBB?

我假设该函数应该调用$(document).ready,但我不知道我应该在函数change_list中做什么。

<script type="text/javascript">
function change_list(aaa){
...
}
$(document).ready(function () {
    $('#some_list li a').click(change_list);
}); 

1 个答案:

答案 0 :(得分:2)

这适用于.text()的{​​{3}}版本:

$('#some_list li a').click(function() {
    $(this).text(function(index, text) {
         return text.replace('AAA', 'BBB');
    });
});

许多jQuery函数的函数参数版本特别适合“读 - 修改 - 写”操作。

他们不需要编写单独的代码来读取值,修改它,然后值写回DOM。

替代方案看起来像这样:

$('#some_list li a').click(function() {
    var oldText = $(this).text();
    var newText = oldText.replace('AAA', 'BBB');
    $(this).text(newText);
});

注意这现在如何调用.text()两次 - 一次检索值,然后再次写入新值。

在这种情况下,节省的费用并不高,但是当您想要修改属性或CSS值等内容时,该方法特别有用,因为它可以避免大量的代码重复。

函数参数方法的另一个优点是它允许您将逻辑与DOM操作分开。您可以编写简单的修改函数,只关心修改字符串,并让jQuery处理DOM操作。