在具有相同ID的多个文本框的特定变量上获取最新文本框的值

时间:2015-05-28 14:26:08

标签: javascript jquery

我想要使用相同ID的多个文本框上的varialble抓取最后一个文本框的值。

HTML

<input type="text" id="get"><br>
<input type="text" id="get"><br>
    <button id="grab">Click</button><br>

SCRIPT

$("#grab").click(function(){
   var value = $("#get").val(); 
});

或者,删除第一个文本框的方法也可能有效。
Working Example

2 个答案:

答案 0 :(得分:2)

您的HTML无效:HTML元素不具有相同的id属性 请改用class属性。

然后,您可以使用.last()获取与.get选择器匹配的最后一个元素:

&#13;
&#13;
$("#grab").click(function(){
  var value = $(".get").last().val(); 
  alert(value);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="get" value="foo"><br>
<input type="text" class="get" value="bar"><br>
<button id="grab">Click</button><br>
&#13;
&#13;
&#13;

(我添加了value属性用于演示目的。显然,它们可以删除。)

如果你想获得第一个元素的值,如果第二个元素为空,你可以这样做:

$("#grab").click(function(){
    var firstValue = $(".get").val(); // `.val()` gets the first element's value by default
    var secondValue = $(".get").last().val(); 

    var result = secondValue || firstValue;
    alert(result);
});

答案 1 :(得分:-2)

如果您对id没有任何控制权,则应使用以下解决方案。如果您可以更改ID,则应更改它们。

您的方法不起作用,因为id不是唯一的。它将始终获得第一个input

$("#grab").click(function() {
    // var value = $(this).prev("input").val(); // Will work when there is no `<br>`
    alert($('input[id="get"]').last().val());
});

此处$('input[id="get"]')将获取ID为getlast()的所有元素将从中获取最后一个元素。

演示:https://jsfiddle.net/orghoLzg/1/