0

私の質問のタイトルは最高のものではありませんが、ここに取り引きがあります:

私は6つの段落を持っています。そのうちの 3 つはテキストを含み、他の 3 つは次のようにリンクを含みます。

<p>Text 1</><p>Link one</>
<p>Text 2</><p>Link two</>
<p>Text 3</><p>Link three</>

すべてのリンクは、対応する段落のテキストの代わりに HTML 入力要素を作成する jQuery 関数を呼び出します (例: リンク 3 をクリックすると、テキスト 3 を含む段落にテキスト入力要素を作成する必要があります)。

2 回目のクリックで、同じリンクがいくつかのパラメーターを使用して AJAX 呼び出しを作成し、Django ビューがそれを取得して、それに応じて動作するはずです。

現在、私はこれを持っています:

$('.column a').click(function ()
{
    oldValue = $('#email').text()
    $('#email').html('<input type="text" value="'+oldValue+'"/>')
    $('a#changeMail').removeClass('button').addClass('success button')
});

1 つの段落ペアに対して機能します。どの「段落ペア」でも機能させるにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

1

その構造では、これは機能するはずです(フィドルhttp://jsfiddle.net/uBZRW/2/

$('.column a').click(function ()
{
    var targetParaphaph = $(this).parent().prev(); // This gets the previous <p>
    var value = targetParaphaph.text();
    targetParaphaph.html("<input type='text' value='"+value+"'/>");
    $(this).addClass('success'); // this results in "button success" class
});

編集: コードに複数の修正を加えて元の回答を編集しました。フィドルには実際の例が含まれています。構造が異なる場合は、jquery .parent()、.parents([selector])、.next() を使用して同様のロジックを実装できます。 、.prev() など

jQuery DOM トラバーシング: http://api.jquery.com/category/traversing/

于 2013-03-22T16:30:19.110 に答える