【问题标题】:How to get value of 'this' inputbox?如何获取“this”输入框的值?
【发布时间】:2013-07-31 21:46:42
【问题描述】:

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

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

【问题讨论】:

  • 请给我们看一些 html,如果只是为了阻止人们错误地回答你。

标签: javascript jquery


【解决方案1】:

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

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

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

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

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

性能:

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

【讨论】:

  • 这似乎在我的情况下效果最好。感谢您的快速和出色的回应。我使用的是(this)('input[type=text].provided_code'),这显然会引发错误。
  • 顺便说一句,$(this).find('input[type=text].provided_code') 效率更高。
【解决方案2】:

是的,你可以这样做:

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

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

【讨论】:

    【解决方案3】:

    而不是(this)('input[type=text].provided_code').val();

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

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

    【讨论】:

      【解决方案4】:

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

      $('div').on('click',function(){
        var value = $(this).find('input[type=text].provided_code').val();
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-05
        • 2021-01-16
        • 1970-01-01
        • 2022-09-27
        相关资源
        最近更新 更多