1
4

4 に答える 4

4

一意の ID ごとに同じコードを何度も繰り返す代わりに、次のことを試してください。

HTML: <a href="#" id="aX"><a href="#qX">

JS:

// Select for all links that start with "#q(...)"
$("a[href^='#q']").click(function(e) {

    // Prevent default
    e.preventDefault();

    // Define some variables
    var x = $(this).attr("href").substr(2),
        content = $(this).text();

    // Select the correct element to replace text
    $("#a" + x).text(content);
});

[編集]: 完全を期すために - リンクのコンテンツに HTML タグが含まれていて、それらを複製したい場合は、.html()代わりに.text();)を使用してください。

ここでフィドルを参照してください - http://jsfiddle.net/teddyrised/c69P6/

于 2013-03-13T14:22:08.860 に答える
1

このフィドルを見てください: http://jsfiddle.net/H6j6g/1/

$("a[id^=q]").click(function(){
    $("#a" + this.id.substring(1)).text($(this).text());
})

$("a[id^=q]")文字「q」で始まる ID を持つすべてのリンクを選択します。次に、同じ番号の ID を持つ要素を見つけますが、代わりに文字 "a" で始まり、そのリンクのテキストをクリックされたリンクのテキストに置き換えます。

于 2013-03-13T14:23:04.430 に答える
0

これを試して:

$('#q1 a').click(function () {
    $('#a1').text($(this).text());
});
$('#q2 a').click(echoAnswer, function () {
    $('#a2').text($(this).text());
});
于 2013-03-13T14:15:13.223 に答える
0

これは、リンクの数を気にしないソリューションです

また、 e.preventDefault() はリンクがどこにも行かないようにします

デモ

$("a").on("click",function(e) {
  var href = this.href.split("#")[1];

  if (href.indexOf("q") == 0 ) {
    var id = href.replace("q","a");
    $("#"+id).text($(this).text())
    e.preventDefault();
  }
});
于 2013-03-13T14:17:26.223 に答える