jquery .text()方法没有从输入类型文本html元素获取任何文本

时间:2012-01-28 00:17:50

标签: jquery jquery-ui

我在DOM中找到我的元素:

tag_text_box = ($(this).parent().parent().find('.tags'))

我打印出来检查它是否正确,确实是这样。 这里:

[
<input type=​"text" class=​"tags ui-autocomplete-input" style=​"width:​ 250px;​ height:​ 24px;​ background-color:​ red;​ " name=​"display_name" autocomplete=​"off" role=​"textbox" aria-autocomplete=​"list" aria-haspopup=​"true">​
]

然而,tag_text_box.text()似乎根本不起作用。它不会打印我在输入中键入的任何文本。我应该使用其他方法吗?

5 个答案:

答案 0 :(得分:5)

您需要使用.val()代替; .text()获取 in 元素中的文本,而.val()获取文本框的值,该值是输入的属性。 / p>

您也可以在第一行留下周围的括号。请注意,您还应该使用var;目前,您在全局命名空间中声明tag_text_box。这是它应该是什么样子:

var tag_text_box = $(this).parent().parent().find('.tags');

var box_text = tag_text_box.val();

为了更简洁,您可以简单地将输入值直接分配给变量:

var tags = $(this).parent().parent().find('.tags').val();

答案 1 :(得分:2)

要获取文本输入的值,您必须使用:

($(this).parent().parent().find('.tags')).val()

答案 2 :(得分:2)

这是因为您应该使用.val()而不是.text()..

.val()用于dom对象具有值的任何内容。

你可以在这里阅读更多关于.val()以及使用它的dom元素:http://api.jquery.com/val/

答案 3 :(得分:1)

.val()抓住输入值。

http://api.jquery.com/val/

答案 4 :(得分:1)

使用

var textboxValue = $(...).val();

代替