Jquery Multiple Divs

时间:2015-12-18 13:46:46

标签: jquery html

这只是一个示例,我正在编写的程序jQuery似乎是我使用的一些功能的更好的路径。无论如何这是问题所在。在我的第二个div上,单击编辑按钮,当我单击编辑按钮时,我想要提醒文本框的值。

是的,这可能是重复的,但是其他堆栈问题的答案已经告诉我使用该类而不是Id。我有,但jquery只影响第一个div。当我点击第一个div上的编辑时它会提醒251.但是当我点击第二个div上的编辑时它会提醒251我希望它提醒351.感谢Stack。

    <!DOCTYPE html>
<html>
<head>

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function(){
  $('.editdet').click (function() {
    alert($('.addet').val());  
});
});
</script>
</head>
<body>
<div class = "newbox">
<form class = "something">
<table>
  <tr>
    <td>
      <input type="text" id="addet" class = "addet"  value="251"/>
      <input type="button" id="editdet" class = "editdet"  value="Edit"/>
    </td> 
  </tr>
</table>
</form>
</div>
<br>

<div class = "newbox">
<form class = "something">
<table>
  <tr>
    <td>
      <input type="text" id="addet" class = "addet"  value="351"/>
      <input type="button" id="editdet" class = "editdet"  value="Edit"/>
    </td> 
  </tr>
</table>
</form>
</div>

</body>
</html>

5 个答案:

答案 0 :(得分:3)

这是因为$('.addet')是具有类名addet的所有元素的集合。

然后,当您对集合执行.val()时,它会抓取集合中的第一个值,这是页面上的第一个值,因此251

您需要获得与您点击的addet相关的editdet。您可以使用prev()函数实现此目的:

$('.editdet').click (function() {
    alert($(this).prev('.addet').val());  
});

将获得前一个元素。

无论您的元素在哪里,您都需要相对于当前元素($(this))的位置遍历DOM结构。

Some helpful jQuery functions for traversing the DOM structure

答案 1 :(得分:3)

首先,你不能拥有类似的身份证。 第二件事是你没有正确定位你的价值。

您需要使用 Sibiling / Previous Selector

'i18n' => [
    'translations' => [
        '*' => [
            'class' => 'yii\i18n\PhpMessageSource',
            'fileMap' => [
                'bar' => 'bar.php'
            ],
        ],
    ],
],

在这个特定的情况下应该工作

答案 2 :(得分:1)

使用

<input onclick="edit()" type="button" id="editdet" class = "editdet"  value="Edit"/>

<script>
  function edit() {
    alert($(this).prev().val());  
  }
</script>

答案 3 :(得分:0)

您可以使用以下代码进行尝试:

<script>
    function edit() {
        alert($(this).parent().find(".addet").val());  
    }
</script>

答案 4 :(得分:0)

试试这个,

$(".addet").each(function() {
      alert($(this).val());
    });