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()2回呼び出されることに注意してください。1回は値を取得し、もう1回は新しい値を書き込みます。

この場合のように、節約はそれほど大きくありませんが、属性やCSS値などを変更する場合は、コードの多くの繰り返しを回避できるため、この方法は特に強力です。

関数の引数メソッドのもう1つの利点は、ロジックをDOM操作から分離できることです。文字列の変更のみを考慮した簡単な変更関数を記述し、jQueryにDOM操作を処理させることができます。

于 2012-04-11T16:11:53.820 に答える