2017-04-01 115 views
0

我不知道如何获取输入文本的最后一个值。当输入类型为空时,我已经获得第一个值,但没有获得值。这里是我的代码:jQuery:如何获得输入文本的第一个值和最后一个值

HTML

<input type="text" name="date[]" class="date" id="date" value="6/17"><br/> 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
<input type="text" name="date[]" class="date" id="date" value=""><br/> 
<input type="text" name="date[]" class="date" id="date" value=""><br/> 

JS/jQuery的

$(document).ready(function(){ 
    var $set = $('.date'); 
    var len = $set.length; 
    $set.each(function(index, element) { 
     if (index === 0) { 
      alert (this.value); 
     } 
    });  
}); 
+0

你的标记在哪里? –

+0

@OusmaneMahyDiaw我已编辑我的帖子 –

+0

注意:建议不要使用具有相同'id'的多个输入元素,尤其是当它们全部在单个表单内时。我希望这不是这种情况。 – ITWitch

回答

0

你可以扭转你的循环,并从去年开始。

var $set = $('.date'); 
var len = $set.length; 
var firstVal = $($set[0]).val(); 
var lastVal = null; 
for (var i = len - 1; i > 0; i--){ 
    if ($($set[i]).val()){ 
    lastVal = $($set[i]).val(); 
    break; 
    } 
} 
+0

它的工作!谢谢! :) –

1

您可以使用[!值= '']只选择值输入。 然后使用first()和last()从所选列表的第一个项目和最后一个项目中获取值。

var $values = $(".date[value!='']"); 
 
$("#firstValue").html($values.first().val()); 
 
$("#lastValue").html($values.last().val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="date[]" class="date" id="date" value="6/17"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value=""><br/> 
 
<input type="text" name="date[]" class="date" id="date" value=""><br/> 
 
<div>First value: <span id="firstValue"></span></div> 
 
<div>Last value: <span id="lastValue"></span></div>

+0

谢谢!已经工作,但没有改变,当我把价值空场 –

0

我不知道如何获得输入文本最后一个值。当输入类型为空时,我已获得 的第一个值,但没有获得值。

这应该工作。

var result = $("input[value!='']"); 
 
console.log(result.first().val()); 
 
console.log(result.last().val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="date[]" class="date" id="date" value="6/17"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/18"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value="6/19"><br/> 
 
<input type="text" name="date[]" class="date" id="date" value=""><br/> 
 
<input type="text" name="date[]" class="date" id="date" value=""><br/>

而且,就像一个侧面提示,不要使用具有相同的值,因为这是无效的HTML多id属性。相反,如果您想访问多个元素,请使用您已完成的类属性。

+0

谢谢!但不能更新,当我穿上空的领域 –

相关问题