1

たとえば、次のようなhtmlを考えてみましょう。

<html>
    <head>
       <title></title>
   </head>
   <body>
       <div>
             <a class="delete-btn"></a>
       </div>
       <ul>
          <li>
          <div>
               <div>
                    <a data-record-id="9">I need to grab this, from a click on 'delete-btn'</a>
               </div>
          </div>
          </li>
       </ul>
   </body>
<html>

クラス'delete-btn'を持つアイテムaにクリックイベントを追加し、<a></a>data-record-idが9のアイテムからdata-record-idを取得する必要があります。これは変更される可能性があります。元の削除ボタンにdata-record-idを追加する可能性はありません。

基本的に、日付のバイタルサインのリストがあります。ユーザーが日付のすべてのサインを削除できるようにします。日付ラベルのすべての子は同じレコードIDを持ち、これを取得する必要があります。

ありとあらゆる助けを大いに感謝します。

4

4 に答える 4

2

使用する

$(this).parent().next().find('a')

なぜそのエラーが発生するのかわかりません。

http://jsfiddle.net/3Zkz9/を参照してください

$('.delete-btn').click(function(){
    var $a=$(this).parent().next().find('a');
    alert($a.attr('data-record-id')); // gives 9
});
于 2012-08-31T15:57:30.600 に答える
1

これを使って:

$('.delete-btn').click(function () {
    var id = $(this).parent('div').next('ul').find('[data-record-id]').attr('data-record-id');
    // use id
});
于 2012-08-31T15:59:31.660 に答える
0

フィルタ関数を使用して、これらのアンカーをdata-record-id=9次のように抽出できます。

$('a.delete-btn').on('click', function(e) {
    var $recid9 = $('a').filter(function() {
        return ($(this).data('record-id') == 9);
    });
});​

http://jsfiddle.net/mblase75/CyKab/

于 2012-08-31T16:02:30.477 に答える
0

これを試してみてください、

$($('.delete-btn')[0]).parent().next().find('a').attr('data-record-id')

ただし、後ですべての要素を介して各ループを実行するなど、適切な変更を行う必要があります。しかし、これは機能します!

于 2012-08-31T16:01:41.523 に答える