2016-03-15 74 views
0

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

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

我似乎无法阅读的价值,甚至是检查它是否存在,这是我到目前为止已经试过,但它不工作

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

'​​'元素可以具有“值”属性,但它并不意味着什么,并且您无法通过jQuery'.val()'获取它。 “值”属性用于各种面向输入的表单元素。 – Pointy

+1

我不认为'value'是'td'的有效属性。如果您将其更改为'data-value',则可以使用'$(this).data('value')' - https://api.jquery.com/data/ – Pete

回答

4

你应该能够使用jquery attrhtml抢值,并将其放置在标签内:

<script> 

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

</script> 
+0

和事件'.text()' – mplungjan

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()就足够了。你也不需要检查内容是不是空的,因为如果它是空的,那么它只会在它们之间放置一个空字符串。

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

0

如果你想获得TD的价值attribue,然后调用元素的data方法,所以更改 if ($(this).val() != '')if ($(this).data('value'))

,然后添加TD元素的值更改为:

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