javascript - 查询 : Get div defined in same table row

标签 javascript jquery html onclick

我有一个使用 MVC 应用程序动态创建的 HTML 表,表的输出如下所示:

在编辑按钮的 onclick 事件中,我想使用 jQuery 显示 divText 并隐藏同一行的 divLabel

我已尝试获取 divLabel,如下所示:

function EditRecord(elem) {
  var divlabel = $(elem).closest('tr').children('td div#divLabel');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <div id="divLabel">
        value 1
      </div>
      <div id="divText" style="display: none">
        <input type="text" value="value 1" />
      </div>
    </td>
    <td>
      <input type="button" value="edit" onclick="EditRecord(this);" />
    </td>
  </tr>
  <tr>
    <td>
      <div id="divLabel">
        value 2
      </div>
      <div id="divText" style="display: none">
        <input type="text" value="value 1" />
      </div>
    </td>
    <td>
      <input type="button" value="edit" onclick="EditRecord(this);" />
    </td>
  </tr>
</table>

但它对我不起作用。

最佳答案

你很接近。有两个问题:

  1. 您的 HTML 无效。您不能为多个元素重复使用相同的 id。您可以改用类:

    <tr>
        <td>
            <!-- Note 'class' rather than 'id' below -->
            <div class="divLabel">
                value 1
            </div>
            <!-- Note 'class' rather than 'id' below -->
            <div class="divText" style="display: none">
                <input type="text" value="value 1" />
            </div>
        </td>
        <td>
            <input type="button" value="edit" onclick="EditRecord(this);" />
        </td>
    </tr>
    
  2. closest 是正确的,但 children 不是。你要find相反,因为 div 不是该行的直接子级。

因此假设您按照 #1 更改 HTML,我们将使用 find 和 #2 的类选择器:

function EditRecord(elem) {
    var divlabel = $(elem).closest('tr').find('div.divLabel');
}

关于javascript - 查询 : Get div defined in same table row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119949/

相关文章:

javascript - Webworker Canvas 性能很糟糕

javascript - 使用 Mirth Transformer 循环多个 PID.3 段

javascript - 如何在选择选项文本之前放置图像/图标?

php - 创建多个 Wordpress 类别 div

jQuery:悬停时更改img

css - 如何将带有较短 div 的 div float 到另一个下方

javascript - 选择列Jquery下的所有行

html - 在水平行中放置 3 个无序列表

html - 带有 2 个图像的 CSS 水平菜单;悬停状态和位置

javascript - 调用函数时更改 div 的 z-index?