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>数据记录 ID 为 9 的项目中获取数据记录 ID。这可以并且将会改变,并假设我不可能将数据记录 ID 添加到原始删除按钮。

基本上,我有一个日期的生命体征列表,我想让用户能够删除某个日期的所有体征。日期标签的所有子项都将具有相同的记录 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

试试这个,

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

尽管您必须进行适当的更改,例如稍后在所有元素中运行 each 循环或任何您想做的事情。但这有效!

于 2012-08-31T16:01:41.523 回答
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 回答