Jquery / Javascript - 找到父母的兄弟姐妹的孩子

时间:2012-08-31 15:55:31

标签: javascript jquery html html5 jquery-mobile

以下面的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”类的项目添加一个click事件,并从数据记录ID为9的<a></a>中获取data-record-id。这可以而且会改变,并假设我没有可能将data-record-id添加到原始删除按钮。

基本上,我有一个日期的生命体征清单,我想让用户能够删除所有日期的标志。日期标签的所有孩子都有相同的记录ID,我需要抓住它。

非常感谢任何和所有帮助。

4 个答案:

答案 0 :(得分: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
});

答案 1 :(得分:1)

使用它:

$('.delete-btn').click(function () {
    var id = $(this).parent('div').next('ul').find('[data-record-id]').attr('data-record-id');
    // use id
});

答案 2 :(得分:0)

试试这个,

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

虽然您必须进行适当的更改, 比如稍后运行每个循环遍历所有元素或者你想做什么。但这很有效!

答案 3 :(得分:0)

您可以使用filter函数仅使用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/