【问题标题】:Get the value of 'this' input box with jQuery?用jQuery获取'this'输入框的值?
【发布时间】:2013-03-18 05:11:30
【问题描述】:

所以我有多个包含相同 HTML 结构、类名和属性的 div。除了输出的内容外,它们是相同的。每个 div 都有一个具有相同类的输入框。如何获取每个输入框的具体值?我猜我会使用“this”,但我无法弄清楚如何准确使用“this”来获取每个文本框的特定值。我不想使用每个,因为它会输出一个值数组。

<div>
    <input class="player-input" type="text"></input>
    <button class="enter">Enter</button>
    <p>Lorem Ipsum<p>
</div>

<div>
    <input class="player-input" type="text"></input>
    <button class="enter">Enter</button>
    <p>Lorem Ipsum<p>
</div>

我正在使用 Meteorjs,事件设置如下:

Template.players.events({
    'click .enter': function(){
          //code
    },
    'keydown .player-input': function(e){
        if (e.which == 13){
            //code
        }
    }
});

如何使用 jQuery 获取每个特定输入元素的值?

【问题讨论】:

  • .each() 似乎是要走的路……你对每个输入中的数据做了什么?
  • 我想将数据输出到“p”同级元素。 @tymeJV

标签: jquery input


【解决方案1】:

这是我将每个附加到段落的方法,如果它有效,请告诉我:http://jsfiddle.net/VtMRx/

$(".player-input").each(function() {
    //alert(this.value);
    $("#paragraphID").append(this.value + "<br/>");
});

【讨论】:

  • 这最适合使用meteorjs处理事件的方式。但是我现在需要将值添加到数据库中。
【解决方案2】:

使用您当前的结构,prev() 应该可以工作:

http://api.jquery.com/prev/

$('button.enter').click(function() {    
    var myVal = $(this).prev('input.player-input').val();
}):

【讨论】:

    【解决方案3】:

    您可能想使用 .closest

    描述:对于集合中的每个元素,通过测试元素本身并向上遍历其在 DOM 树中的祖先来获取与选择器匹配的第一个元素。

    http://api.jquery.com/closest/

    $('.enter').click(function() {    
        var myVal = $(this).closest('.player-input').val();
        $(this).closest('p').html(myVal);
    }):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      相关资源
      最近更新 更多