使用JQUERY Val();作为多元素获取者

时间:2014-11-26 14:25:21

标签: jquery html

我正在使用JQUERY Val();要将数据从我的amCharts周期选择器获取到我的页面上的div它可以工作但只带来一个值,.amChartsInputField有两个包含文本的输入区域。

我注意到JQUERY文件中的Val();明白地使用只会带来一个元素。有没有办法调整这个来引入多个对象。

我的剧本如下:

JQUERY

chart1.addListener("rendered",function(e) {
 e.chart.periodSelector.addListener("changed",function() {

var date = $(".amChartsPeriodSelector .amChartsInputField").val();
    $("#date-div p").text( date );

HTML

<div id="date-div"><p>information pulled</p></div>

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:6)

您可以使用jQuery&#39; s map()函数将所有值收集到数组中:

&#13;
&#13;
// for each match, "map" the value into an array
var dates = $(".amChartsPeriodSelector .amChartsInputField").map(function() {
    return $(this).val();
}).get();

// join the values together and assign to the date-div
$("#date-div p").text(dates.join(', '));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- made up HTML that fits your selectors -->
<div class="amChartsPeriodSelector">
  <input type="text" class="amChartsInputField" value="2014-10-10" />
  <input type="text" class="amChartsInputField" value="2015-11-10" />
</div>

<div id="date-div"><p></p></div>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

您可以使用mapget

将其设为数组
var date = $(".amChartsPeriodSelector .amChartsInputField").map(function(){
   return this.value; // simple but you could also use $(this).val();
}).get(); // now date is an array

如果你想连接,可以像$("#date-div p").text( date.join(" ") );那样使用或使用索引。

答案 2 :(得分:0)

date变量只更新一次(使用第一个元素的val()),这意味着你不会通过这样做获得数组。如果你想为每个单独的值做一些事情,那么你可以做

var elements = $('.elements');
var value;
for(var i=0; i<elements.length; i++){
    value = $(elements[i]).val();
    //now do something.. for example:
    alert(value);
}

答案 3 :(得分:0)

我建议你做那样的事情:

var date = [];
$(".amChartsPeriodSelector .amChartsInputField").each(function() {
    date.push($(this).val());
});