Return 来自 lodash 过滤器方法的选择器的 value()
Return val() of selector from lodash filter method
我有以下代码:
_.filter($('.date-field'), function(n) { return n.val() });
其中 n 应该是选定的元素:
<input class="date-field" id="return-date" placeholder="return date" type="text" value="xyz">
我想使用 class .date-field
获取每个元素的值,但是当我使用 n.val()
时。它 returns 错误:
Uncaught TypeError: n.val() is not a function
我该怎么办?
您需要一个传统数组。尝试使用 get() 和 value
_.filter($('.date-field').get(), function(n) { return n.value });
更新
var dates = [];
$('.date-field').each(function(){
dates.push($(this).val());
});
//you can use the date values here with dates
如果您需要输入值,最好使用 _.map 而不是 _.filter
_.map($('.date-field'), function(n) { return n.value });
_.filter
用于过滤N个元素的集合到另一个N个或更少元素的集合。
如果你想转换集合中的每一项,你应该使用_.map
:
var results = _.map($('.item'), function(item) {
return item.value;
});
$('.result').text(JSON.stringify(results));
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="text" class="item" value="1"/>
<input type="text" class="item" value="2"/>
<input type="text" class="item" value="3"/>
</form>
<div class="result"></div>
jQuery also has a map 如果您愿意,可以使用该函数代替 lodash。
我有以下代码:
_.filter($('.date-field'), function(n) { return n.val() });
其中 n 应该是选定的元素:
<input class="date-field" id="return-date" placeholder="return date" type="text" value="xyz">
我想使用 class .date-field
获取每个元素的值,但是当我使用 n.val()
时。它 returns 错误:
Uncaught TypeError: n.val() is not a function
我该怎么办?
您需要一个传统数组。尝试使用 get() 和 value
_.filter($('.date-field').get(), function(n) { return n.value });
更新
var dates = [];
$('.date-field').each(function(){
dates.push($(this).val());
});
//you can use the date values here with dates
如果您需要输入值,最好使用 _.map 而不是 _.filter
_.map($('.date-field'), function(n) { return n.value });
_.filter
用于过滤N个元素的集合到另一个N个或更少元素的集合。
如果你想转换集合中的每一项,你应该使用_.map
:
var results = _.map($('.item'), function(item) {
return item.value;
});
$('.result').text(JSON.stringify(results));
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="text" class="item" value="1"/>
<input type="text" class="item" value="2"/>
<input type="text" class="item" value="3"/>
</form>
<div class="result"></div>
jQuery also has a map 如果您愿意,可以使用该函数代替 lodash。