虽然这可能是一个简单的问题,但感觉像是jQuery在给我添乱。我的代码get指向我想要获取其值的DOM元素,但是当我添加.val()时,它返回一个空字符串。
$('tr.invoice td[data-attr=Payed] div.true').closest('tr').find('td[data-attr=Expiration]')
Returns this:
[<td data-attr="Expiration">2012-04-22</td>,<td data-attr="Expiration">2012-05-21</td>,<td data-attr="Expiration">2012-06-18</td>]
正如您所看到的,DOM元素具有值,但是如果我将.val()添加到JS字符串中,它只返回空字符串(不是未定义的,为空)
发布于 2012-07-03 03:37:21
方法val()
用于input
和select
元素。
您应该改用html()
或text()
方法。
$('tr.invoice td[data-attr=Payed] div.true')
.closest('tr')
.find('td[data-attr=Expiration]')
.each(function() {
// getting inner HTML
var html = $(this).html();
}
);
发布于 2012-07-03 03:38:16
.val()
用于表单元素,而不是文本值。使用.text()
intstead。
小提琴:http://jsfiddle.net/L8V4A/
编辑:在错误链接上道歉。
发布于 2012-07-03 03:37:39
<td>
%s没有值,因此不会返回任何内容。.val()
仅用于表单元素,如<inputs>
和<select>
标记。要获取元素的内容,请改用.html()
或.text()
。
.html()
和.text()
的区别在于前者会在返回的字符串中包含标签,而.text()
只会返回任何标签的内容。在此示例中,HTML:
<div>
<strong>
Hello world
<span>How're you doing?</span>
</strong>
</div>
$('div').html()
给出了这个字符串(为清晰起见,格式很好):
<strong>
Hello world
<span>How're you doing?</span>
</strong>
而$('div').text()
会给出这样的信息:
Hello worldHow're you doing?
https://stackoverflow.com/questions/11300043
复制相似问题