我有HTML元素,如下所示
<div id="container">
<div>
<span>
<input type="text" id="item1" value="AA"/>
</span>
</div>
<div>
<span>
<input type="text" id="item2" value="BB"/>
</span>
</div>
<div>
<span>
<input type="text" id="item3" value="CC"/>
</span>
</div>
</div>
我需要使用JavaScript和Jquery从项目1,项目2,项目3中提取[AA,BB,CC]
和ID [1,2,3]
等ID之类的数组。如何做同样的事情?
答案 0 :(得分:0)
循环输入,拉取值,解析项目值。像这样:
var ids = [];
var values = [];
$("input").each(function(){
var input = $(this);
var value = input.val();
var id = input.attr("id").replace("item", "");
ids.push(id);
values.push(value);
});
Here is a working example(警告:两个警告弹出窗口)
请注意,输入值是使用input.val()
获得的,这将确保检索到的值是用户输入的当前值。如果您想要属性value
(只需用户输入其他内容即不会更改),您可以使用input.attr("value")
代替
如果页面上有其他input
元素,您不希望包含这些元素,那么您需要更具体地使用选择器。例如,如果所有期望的input
元素都包含id="container"
元素,那么您可以使用此元素:
$("#container input").each(...
答案 1 :(得分:0)
试试这个:
var vals = [];
var ids = [];
$("#container input").each(function(){
vals.push($(this).val());
ids.push($(this).attr("id").replace("item", ""));
});
Here是jsfiddle:
答案 2 :(得分:0)
var arr = $('#container').find('input').map(function(){
return $(this).val();
}).get();
var ids = $('#container').find('input').map(function(){
return $(this).attr('id').replace('item','');
}).get();
答案 3 :(得分:0)
尝试
var idarray = [];
var valuearray = [];
$("#container input").each(function(){
var $this = $(this);
idarray.push($this.attr("id").substring(4));
valuearray.push($this.val());
});
console.log(idarray);
console.log(valuearray);
演示:Fiddle
答案 4 :(得分:0)
var ids = $("input[id^='item']").map(function(i,e){
return e.id;
});
var values = $("input[id^='item']").map(function(i,e){
return $(e).val();
});
console.log(ids);
console.log(values);
答案 5 :(得分:0)
请参考 http://jsfiddle.net/2dJAN/8/
var ids = []
var values = []
$('#container input[type=text]').each(function() {
ids.push($(this).attr('id'));
values.push($(this).val())
})
alert(ids)
alert(values)
答案 6 :(得分:0)
var arrId = [], arrVal = [];
$("input[type='text']").each(function(){//find input text
if(this.id && this.id.indexOf("item")===0){//check id starts with item
arrId.push(this.id.replace("item",""));//push id
arrVal.push(this.value);//push value
}
});
答案 7 :(得分:0)
试试这个:
$(document).ready(function() {
var valuesArray = []
, idsArray = [];
$('#container').children().each(function() {
valuesArray.push($(this).children().children().val());
idsArray.push($(this).children().children().prop('id').substr(4));
});
alert(valuesArray);
alert(idsArray);
});