0

我正在编写一个 Web 应用程序,其中用户单击一个 div,其中包含一个输入文本框,其中包含预定义的文本。当用户单击 div 时,代码将打印在单独的文本框中。我正在尝试编写一个函数来获取单击的 div 文本输入的值。我通过使用单击输入框本身来使其工作, $(this).val();但我想单击 div 然后它基本上获得了(this)('input[type=text].provided_code').val();

有没有办法说这个div里面的文本输入?页面上有 20 个 div,每个 div 有 20 个输入,每个 div 都有相同的类名等。

4

4 回答 4

1

是的,你可以这样做:

$(this).find("input[type='text']").val();

假设在该 div 中有一个 text 类型的输入。

于 2013-07-31T13:19:06.947 回答
1

是的,您可以指定选择器上下文:

默认情况下,选择器从文档根目录开始在 DOM 中执行搜索。但是,可以通过使用 $() 函数的可选第二个参数为搜索提供替代上下文

文档: http ://api.jquery.com/jQuery/#jQuery1

所以你的代码可能看起来像这样:

$('input[type=text].provided_code', this).val()

表现:

http://jsperf.com/jquery-find-vs-context-sel/38

于 2013-07-31T13:19:15.683 回答
1

代替(this)('input[type=text].provided_code').val();

您应该使用正确的 jQuery 和 find 函数。

$(this).find('input[type="text"].provided_code'].val();

于 2013-07-31T13:44:18.473 回答
0

您可以使用find- 虽然,您不能在单击 div 时定位特定输入,除非该输入具有唯一的类或 id。

$('div').on('click',function(){
  var value = $(this).find('input[type=text].provided_code').val();
})
于 2013-07-31T13:19:29.223 回答