1

对不起,愚蠢的问题,但我无法弄清楚(初学者)

我有一个 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);
}); 
4

1 回答 1

2

这是函数参数版本的一个很好的用途.text()

$('#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 操作。

于 2012-04-11T16:11:53.820 回答