2016-03-15 55 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'));