【问题标题】:How to find input with specific value如何找到具有特定值的输入
【发布时间】:2014-06-18 18:57:45
【问题描述】:

要求, 想找到具体输入过的输入字段

html,

<ul class="test-list">
<li>
   <input class="test-input">
</li>
<li>
   <input class="test-input">
</li>
<li>
   <input class="test-input">
</li>
</ul>

示例,

如果用户在每个输入字段中输入了“test1”、“test2”、“test3”

我试过 javascript,

$('.test-list').find('.test-input [value="test1"]')

我希望得到已输入 test1 的输入字段,但它返回 0 数组:(

我试过filter() 并且他的它可以工作,但我想像第一个一样直接找到它。

【问题讨论】:

  • var value = $('test-list').find('.test-input').attr('value');

标签: javascript jquery


【解决方案1】:

test-input 是类名而不是标记名。您还需要删除name-value 选择器和.test-input 中的空格。你需要使用:

$('.test-list').find('.test-input[value="test1"]');

您还可以将选择器缩小到:

$('.test-list [value=test1]');

Working Demo

【讨论】:

  • 不需要$('.test-list') ?
  • @Canna:你删除了选择器之间的空格吗?
【解决方案2】:
  • 您的代码不起作用,因为您缺少一个点
  • 使用find() 下降到子节点和[value="x"] 选择器

Solution:

$('.test-list').find('.test-input[value="test1"]');

资源:

【讨论】:

    【解决方案3】:

    做 [value="test1"] 不是合理的解决方案。
    如果一个元素没有“值”属性怎么办?
    所以我会这样做:

    $('.test-list').find('.test-input').each(function(){
        var $this = $(this);
        if($this.val() == 'test1') {}
    });
    

    【讨论】:

      【解决方案4】:

      试试

      你错过了.class selecor

      $('.test-list').find('.test-input [value="test1"]')
      

      DEMO

      【讨论】:

        【解决方案5】:
        $('.test-list').find('.test-input[value="test1"]')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-06
          • 1970-01-01
          • 2022-01-19
          • 2021-12-01
          • 2019-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多