2011-12-22 14 views
1

次のコードがあり、ユーザーがjQueryを使用して削除ボタンをクリックした場合、そのグループの名前をどのように取得できますか?以下の例)?そして、誰かが不思議に思うような場合は、削除しようとしているグループの名前の確認ボックスを表示したいからです。リンクがクリックされたときにTDフィールドの値を取得

<td class='title column-title'>Test Group 
    <div class="row-actions"> 
     <span class='delete'> 
      <a id="single-delete" href="?page=permissions-options-eidtor&action=delete&action_role=test_group&role=&paged=2&message=3">Delete</a> 
     </span> 
    </div> 
</td> 

答えて

3
$('#single-delete').click(function() { 
    $(this).parents('.column-title').text(); 
}); 
+1

ありがとうございます - 私のテキストを '

3

このようなものを試してください。

$(document).ready(function() { 

    $('#single-delete').click(function() { 
    $(this).closest('.column-title').text(""); // UPDATE: Won´t work as text() returns all inner text. 
    }); 

}); 

UPDATE

あなたのリンク#single-deleteは、クラスを持っている必要がありますが、あなたはまた、セレクタ.delete aを使用することができ、<span class="label">Test group</span>やまねこのようなspanでテキストをラップするのが良いでしょう。

UPDATE 2

$('.delete a').click(function(e) { 

    var group = $(this).closest('.column-title').find('.label').first().text(); 
    return confirm('Are you sure you want to delete the group "' + group + '"?'); 

}); 
+0

、テキストの一部があなたのコード内で必要とされている場合他のコントロールが何であるかにかかわらず、何らかのhtml要素に入れて抽出することをお勧めします。 –

+0

ありがとうございました - これはちょっとしたものでしたが、テキストは今では '

1

これはダイナミックリンクがある場合、私はあなたのA-要素にカスタム属性を追加することをお勧め:あなたが使用することができ、あなたの確認では

<td class='title column-title'>Test Group 
    <div class="row-actions"> 
     <span class='delete'> 
      <a id="single-delete" actionrole="test_group" href="...">Delete</a> 
     </span> 
    </div> 
</td> 

var text = 'Delete group ' + $('#single-delete').attr('actionrole') + '?'; 
var result = confirm(text); 

これができない場合は、href aあなたのリンクのttributeと正規表現を使用してパラメータを抽出します。

更新

this example on jsFiddle

+0

私はあなたのhref属性にあった唯一の "テストゴープ"は/私は私の答えはあなたのために動作しないと思う唯一の質問を読むべきである – Grrbrr404

+1

それは働くことができます - リンクは 'foreach'ループ、だから私はあなたのカスタムアトリビュートの下にグループの名前を追加します。しかし、ここで助けを組み合わせることで、私はこれを望みどおりに機能させることができました。ありがとう。 –

1

<td>祖先をマッチングし、期待通りに返された値は、すべての子孫の内部テキストが含まれていますので、その内側のtext()は、動作しません取得を参照してください。リンクを含む要素

あなたは<td>要素のテキストノードの子を分離するcontents()filter()を使用して、その後、map()join()でそれらの値を連結することを回避することができます。

$(".delete a").click(function() { 
    var group = $(this).closest(".column-title").contents().filter(function() { 
     return this.nodeType == 3; 
    }).map(function() { 
     return this.nodeValue; 
    }).get().join(""); 

    // Now do something with 'group'... 
}); 
0

を私は "とは何を意味するのかわかりませんこれでグループを削除する」、私は追跡する方法を伝えることができる 『test_group』パラメータすなわち 『action_role』以下のコードを持つ:原則として

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#single-delete').click(function() { 
    console.log($(this).attr("href").split('&')[2].split('=')[1]); 
    }); 
}); 
</script> 
関連する問題