如何使用 Jquery 获取上层 HTML 标签

Jis*_*had 0 html javascript ajax jquery

我试图用 jquery 对我的 html 页面进行分类,这是我的代码。

 <tbody>
   <tr>
    <td class="itmId">1</td>
    <td class="entryNAmee">David</td>
   </tr>
   <tr>
    <td class="itmId">2</td>
    <td class="entryNamee">Alan</td>
   </tr>
</tbody> 
Run Code Online (Sandbox Code Playgroud)

我正在将 td 更改为使用 jquery 输入文本,然后单击除第一列之外的每个 td。这工作正常,当上述事件执行时,tr 变得如下所示。

    <tr>
      <td class="itmId">1</td>
      <td class="entryNAmee nowText">
        <input type="text" value="Alan">
      </td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

进行更正后,事件模糊不清。代码如下。

js。

$(document).on('blur','table tr td input',function()
{   
    var fieldNewValue = $(this).val();
    var fieldNewId = $(this).closest('td.itmId').addClass("kkkkkkkkk");
    //console.log(fieldNewId);
    alert(fieldNewId);
    /*$.ajax({
        typr:"post",
        url:"updateEntry",
        dataType:'json',
        data:{newValue:fieldNewValue},
        success:function(data)
        {
            console.log("updated succesfully");
        }
    });
    */
    $(this).parents('td').text(fieldNewValue).removeClass('nowText');
    $(this).remove();

}); 
Run Code Online (Sandbox Code Playgroud)

我想在单击的 td 的上侧 td 添加一个类。我尝试了最接近和父母的 jquery api,但没有用,

任何人都可以请支持我如何赶上td?

jquery中最近的和父母之间有什么不同。

谢谢

j08*_*691 5

改变:

var fieldNewId = $(this).closest('td.itmId').addClass("kkkkkkkkk");
Run Code Online (Sandbox Code Playgroud)

到:

var fieldNewId = $(this).closest('tr').find('td.itmId').addClass("kkkkkkkkk");
Run Code Online (Sandbox Code Playgroud)

您可以阅读文档以查看.closest()和.parents()之间的差异,但是在您的代码中,您没有在 DOM 上遍历足够远。$(this).closest('td.itmId')正在寻找一个在您预期的位置不存在的 td,因为它是您所在的父单元格的兄弟。

你也可以使用(this).closest('td').prev()代替(this).closest('tr').find('td.itmId')