将TD值作为其文本

时间:2016-03-15 16:08:48

标签: javascript jquery html html-table

是否可以获取TD的值,并将其作为文本放置?

<td class="itemtd" value="58057" bgcolor="red"></td>

我似乎无法读取该值,甚至检查它是否存在,这是我到目前为止所尝试的,但它不起作用

<script>
$(function(){
    $('.itemtd').each(function(){
        if ($(this).val() != '') {
        $(this).append($(this).val());
        }
    });
});
</script>

4 个答案:

答案 0 :(得分:4)

您应该可以使用jquery attrhtml来获取值并将其放在标记内:

<script>

    $(function(){
        $('.itemtd').each(function(){
            if ($(this).attr('value') != '') {
              $(this).html($(this).attr('value'));
            }
        });
    });

</script>

答案 1 :(得分:4)

TD没有value属性。如果要设置一个,请改为使用数据属性:

<td class="itemtd" data-value="58057" bgcolor="red"></td>

然后使用jQuery.data()访问该媒体资源:

<script>
$(function(){
  $('.itemtd').each(function(){
    $(this).html($(this).data('value'));
  });
});
</script>

如果你只是放入tdjQuery.html()就足够了,你就不需要追加。你也不需要检查内容是否为空,因为如果它是,那么它只是在它们之间插入一个空字符串。

答案 2 :(得分:0)

首先,td元素不能具有value属性。添加一个可能会使您的代码无效,从而导致渲染错误。要解决此问题,请使用data-*属性在HTML中存储自定义数据:

<td class="itemtd" data-value="58057" bgcolor="red"></td>

然后在您的JS中,您不需要使用each(),因为您可以为text()提供一个功能,该功能分别对每个匹配的td起作用。试试这个:

$('.itemtd').text(function(i, text) {
    return text == '' ? '' : text + $(this).data('value');
});

Working example

答案 3 :(得分:0)

如果你想得到TD的值attribue,那么调用元素的data方法,所以改变     if ($(this).val() != '')if ($(this).data('value'))

然后将值添加到TD元素,更改:

$(this).append($(this).val());$(this).html($(this).data('value'));