javascript - 添加具有来自 self 的值的数据属性

标签 javascript jquery html

我有一个表,我想向其中每行的最后一个子元素添加属性“数据顺序”。见下表。

     <table id="table_id" class="display">
         <tbody>
           <tr>
            <td>Test</td>
            <td>255 500</td>
          </tr>
        </tbody>
    </table>

我想将最后一个 td 的值添加到属性中。

Before : <td>255 500</td>
After  : <td data-order"255 500">255 500</td>

我使用 $(this).text() 从 td 获取值,但它似乎没有按照我想象的方式工作。我得到了包含多个表行的奇怪数据。我使用这段 Javascript 代码来添加属性。

    $(document).ready(function() {
        $( '#table_id tbody tr td:last-child').attr( 'data-order', $(this).text());
    });
    </script>

我的代码有什么问题吗?谢谢。

最佳答案

此时 this 并不引用您的 $( '#table_id tbody tr td:last-child')

我认为你必须声明一个 var,这样的东西可以帮助你

var $MyObject = $( '#table_id tbody tr td:last-child'); 
$MyObject.attr( 'data-order', $MyObject.text());

如果表中有多行,您可以在每个循环中使用this

示例案例

<table id="table_id" class="display">
   <tbody>
       <tr>
         <td>Test</td>
         <td>255 500</td>
       </tr>
       <tr>
          <td>Test1</td>
          <td>255 5001</td>
       </tr>
       <tr>
         <td>Test2</td>
         <td>255 500</td>
       </tr>
    </tbody>
</table> 

$( '#table_id tbody tr td:last-child').each(function(){
  var $MyObject = $(this); // this here referer to the current object of the loop
  $MyObject.attr( 'data-order', $MyObject.text());
});

关于javascript - 添加具有来自 self 的值的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740964/

相关文章:

javascript - SoundCloud:更新轨道元数据不起作用

javascript - 使用 jQuery 自动裁剪图像空白

java - Struts2 + jQuery - 定期向客户端发送更新

javascript - 使用ajax运行php脚本没有显示结果

javascript - 从同一对象的不同实例中触发另一个实例的函数

jquery - JsTree .get_checked 函数不起作用...帮助...?

javascript - <div> 间接更改大小时不会触发过渡

jquery - 检查是否选中了单选框

php - 在 PHP echo 中运行 PHP?

javascript - 谷歌地图标记聚类数组