是否可以获取TD的值,并将其作为文本放置?
<td class="itemtd" value="58057" bgcolor="red"></td>
我似乎无法读取该值,甚至检查它是否存在,这是我到目前为止所尝试的,但它不起作用
<script>
$(function(){
$('.itemtd').each(function(){
if ($(this).val() != '') {
$(this).append($(this).val());
}
});
});
</script>
答案 0 :(得分:4)
您应该可以使用jquery attr
和html
来获取值并将其放在标记内:
<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>
如果你只是放入td
,jQuery.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');
});
答案 3 :(得分:0)
如果你想得到TD的值attribue,那么调用元素的data
方法,所以改变
if ($(this).val() != '')
至if ($(this).data('value'))
然后将值添加到TD元素,更改:
$(this).append($(this).val());
来
$(this).html($(this).data('value'));