.next(“.myClass”)无法运行Jquery

oknrviil  于 2023-06-22  发布在  jQuery
关注(0)|答案(2)|浏览(143)

我不知道如何获得我想要的价值,我尝试了很多事情,但我不知道如何找到我的价值。下面是我的HTML:

<table class="liste">
    <tbody>
        <tr>
            <th>Actions</th>
            <th>Nom</th>
            <th>Coordonnées</th>
            <th>Diplômes</th>
            <th>Profil associé</th>
        </tr>
        <tr>
            <td class="groupe" colspan="5">2014-2015            
                <button class="copyMails" title="Copier les adresses emails">
                     <img src="/images/picto/action_dupliquer.png" alt="">
                    Copier les adresses emails
                </button>
            </td>
        </tr>
        <tr>
            <td>
                <input type="text" class="lstMails" value="myText">
            </td>
        </tr>
        <tr>
            <th>Actions</th>
            <th>Nom</th>
            <th>Coordonnées</th>
            <th>Diplômes</th>
            <th>Profil associé</th>
        </tr>
        <tr>
            <td class="groupe" colspan="5">2014-2015            
                <button class="copyMails" title="Copier les adresses emails">
                     <img src="/images/picto/action_dupliquer.png" alt="">
                    Copier les adresses emails
                </button>
            </td>
        </tr>
        <tr>
            BLABLABLA
        </tr>
        <tr>
            BLABLABLA
        </tr>
        <tr>
            <td>
                <input type="text" class="lstMails" value="myText2">
            </td>
        </tr>
    </tbody>
</table>

以下是我的JS:

$("body").on('click', ".copyMails", function() {
    console.log($(this).parent().parent().parent().next('.lstMails').val());
});

我试过和父母多一点,少一点等等。但我不知道该怎么做。我想在单击按钮时访问下一个. lstMail。copyMail

vybvopom

vybvopom1#

您应该使用closest()导航父tr,然后使用next()指向下一个tr,然后可以使用find()
使用

$("body").on('click', ".copyMails",function(){
    console.log($(this).closest('tr').next('tr').find('.lstMails').val());
});
  • 更新 *
$("body").on('click', ".copyMails", function() {
    alert($(this).closest('tr').nextAll('tr:has(.lstMails)').find('.lstMails').val());
});
ulydmbyx

ulydmbyx2#

您需要找到下一个tr同级元素,然后找到其中的lstMails元素

$("body").on('click', ".copyMails", function() {
  $('#log').html($(this).closest('tr').nextAll('tr:has(.lstMails)').first().find('.lstMails').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table class="liste">
  <tbody>
    <tr>
      <th>Actions</th>
      <th>Nom</th>
      <th>Coordonnées</th>
      <th>Diplômes</th>
      <th>Profil associé</th>
    </tr>
    <tr>
      <td class="groupe" colspan="5">2014-2015
        <button class="copyMails" title="Copier les adresses emails">
          <img src="/images/picto/action_dupliquer.png" alt="">Copier les adresses emails
        </button>
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" class="lstMails" value="myText">
      </td>
    </tr>
    <tr>
      <th>Actions</th>
      <th>Nom</th>
      <th>Coordonnées</th>
      <th>Diplômes</th>
      <th>Profil associé</th>
    </tr>
    <tr>
      <td class="groupe" colspan="5">2014-2015
        <button class="copyMails" title="Copier les adresses emails">
          <img src="/images/picto/action_dupliquer.png" alt="">Copier les adresses emails
        </button>
      </td>
    </tr>
    <tr>
      <td>BLABLABLA</td>
    </tr>
    <tr>
      <td>BLABLABLA</td>
    </tr>
    <tr>
      <td>
        <input type="text" class="lstMails" value="myText2">
      </td>
    </tr>
  </tbody>
</table>

<div id="log"></div>

您的代码正在获取单击按钮的tbody祖先,然后试图查找具有类lstMails的下一个兄弟-这不是您想要的。

相关问题