我想要使用相同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
答案 0 :(得分:2)
您的HTML无效:HTML元素不具有相同的id
属性
请改用class
属性。
然后,您可以使用.last()
获取与.get
选择器匹配的最后一个元素:
$("#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;
(我添加了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为get
且last()
的所有元素将从中获取最后一个元素。