2011-12-24 52 views
1

我有这样的代码:在按一下按钮,选择一个兄弟元素使用jQuery

<div class="item"> 
    <div class="hidden">44</div> 
    <input type="submit" id="btnAddCommentForAnswer" value="Add Comment" /> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $('#btnAddCommentForAnswer').click(function() { 
      alert(XXX); 
     }); 

    }); 
    </script>  
</div> 

<div class="item"> 
    <div class="hidden">12</div> 
    <input type="submit" id="btnAddCommentForAnswer" value="Add Comment" /> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $('#btnAddCommentForAnswer').click(function() { 
      alert(XXX) 
     }); 

    }); 
    </script> 
</div> 

我应该把那些代码在XXX当我在按下按钮来获得与类的div =隐藏的内容与class = item相同的div?
如果你点击第一个按钮,你应该得到44,并单击第二个按钮,你会得到12

回答

4

首先,id's是为了独一无二;也许你应该将id更改为class。 有了到位,你可以使用脚本类似下面的达到你想要的东西:

$(document).ready(function() { 
    $('.btnAddCommentForAnswer').click(function() { 
     alert($(this).siblings('.hidden').text()); 
    }); 
}); 

这里有一个的jsfiddle例如:JSFiddle

并记录在案,你不需要到脚本中有两个脚本标记。这个包裹在<script>标签中的脚本就是所有必需的。

1

没有尝试过,但是这应该工作:

$(this).closest('div').text() 
0

您不需要多次重复JavaScript代码。另外,你不能在jQuery中使用id,因为按钮具有相同的id。 这是可以解决你的问题的jsfiddle http://jsfiddle.net/t8XJZ/

0

也许这是对您更有用......

的jQuery:

$(document).ready(function() { 
    $('.item').each(function(){ 
     $(this).find("#btnAddCommentForAnswer").click(function() { 
      alert($(this).prev(".hidden").text()) 
     }); 
    }); 
}); 

HTML:

<div class="item"> 
    <div class="hidden">44</div> 
    <input type="submit" id="btnAddCommentForAnswer" value="Add Comment" /> 
</div> 

<div class="item"> 
    <div class="hidden">12</div> 
    <input type="submit" id="btnAddCommentForAnswer" value="Add Comment" /> 
</div> 
相关问题