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

Sah*_*wal 0 jquery jquery-ui

我在DOM中找到我的元素,如下所示:

tag_text_box = ($(this).parent().parent().find('.tags'))
Run Code Online (Sandbox Code Playgroud)

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

[
<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">?
]
Run Code Online (Sandbox Code Playgroud)

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

Boj*_*les 5

你需要.val()改用; .text()从元素内部获取文本,而.val()获取文本框的值,这是输入的属性.

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

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

var box_text = tag_text_box.val();
Run Code Online (Sandbox Code Playgroud)

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

var tags = $(this).parent().parent().find('.tags').val();
Run Code Online (Sandbox Code Playgroud)