为什么.val()总是空的(Jquery)?
我的输入有问题。
这是我的html / php代码:
$dotation = ($ig["dotation"]) ? $ig["dotation"]: ''; $bo .= ' ' . $dotation . ' Modifier
这是我的js代码:
var dot_cha = $(this).parent().find('.dot').val();
我的问题是,为什么var dot_cha总是空的?! 当我使用.html输入.val时,我得到了正确的,这是我的错误?
谢谢。
.val()获取input-element的value属性。 “.dot”是一个td,没有value-attribute。
你想要dot_cha究竟是什么? 如果它是您所追求的输入,这将起作用。
$(this).parent().find('.datepickerIG').val();
如果它是td .html()或.text()的文本将给你这个。
val
检索具有此属性的input
和其他标记的值。 在你的情况下, .dot
是一个没有属性value
的表行的类……所以你必须使用.text()
或.html()
。
我会说问题是
没有值,它包含HTML。
这就是为什么.html工作和.val没有。
您在具有值的输入上使用.val,但
不是输入,而只是HTML标记。
val()
将与表单元素(如input
, textarea
等…)一起使用,而不是与元素一起使用。
您需要获取元素的innerHTML
或innerText
。
就像是:
var dot_cha = $(this).parent().find('.dot').text();
虽然你需要确保你有一个元素 – 因为你可能会得到一个元素集合。
来自文档 :
.val()方法主要用于获取表单元素的值,例如input,select和textarea。 对于元素,.val()方法返回包含每个选定选项的数组; 如果未选择任何选项,则返回null。
从jQuery API文档 :
.val()方法主要用于获取表单元素的值,例如input
, select
和textarea
。
val
用于表单元素。 由于.dot
是使用val
的td
元素(不是表单元素),因此无效。 要获取表单元素以外的任何元素的内容,请使用.html
或.text
这里的文件说
.val()方法主要用于获取表单元素的值,例如input,select和textarea。
你是对的.html有效,因为在你的情况下你有一个td,你应该使用
$(".dot").html()
希望能帮助到你