2

鉴于以下 HTML 位于 JavaScript 字符串变量中,我想使用 JQuery 将值 1234、5678、9012 提取到数组中:

<input type="hidden" id="name" value="1234"/>
<input type="hidden" id="name" value="5678"/>
<input type="hidden" id="name" value="9012"/>

我尝试了各种 reg 表达式,但在循环或环绕$each字符串以查找所有values="xxxx"

4

5 回答 5

1

首先,不要id多次使用 duplicate 。

使用一个类,然后使用 `$('.class').each(); 获取元素

var elements = [];
$('.classname').each(function() {
    elements.push($(this).val());
});
于 2013-04-24T16:09:49.230 回答
1

如果它在字符串中,您可以简单$(<string-value>)地将其转换为 jQuery 对象,然后使用该.filter()函数遍历输入元素:

var str = '<input type="hidden" id="name" value="1234"/>\
<input type="hidden" id="name" value="5678"/>\
<input type="hidden" id="name" value="9012"/>',
values = [];

$(str).filter('input').each(function() {
    values.push(this.value);
});

演示

于 2013-04-24T16:14:14.347 回答
0
var html = '<input type="hidden" id="name" value="1234"/><input type="hidden" id="name" value="5678"/><input type="hidden" id="name" value="9012"/>';

var temp = document.createElement('div');
temp.innerHTML = html;
var inputs = temp.getElementsByTagName('input');
var values = [];
for (var i=0; i< inputs.length; i++)
{
    if(inputs[i].type == 'hidden'){
        values.push(inputs[i].value);
    }
};
alert(values.join(','));

演示

于 2013-04-24T16:27:41.900 回答
0

注意:ID必须是唯一的。

但是,您可以这样做:

var arr=[];
$('input[type="hidden"]').each(function(){
    arr.push($(this).val());
});

演示:http: //jsfiddle.net/dirtyd77/XNhas/

于 2013-04-24T16:09:56.227 回答
-1

Add a class to them for easier selecting.

Until that, you can try something like this:

 var results = []
 $('input[type="hidden"]').each(function(){
  results.push($(this).val())
 })
于 2013-04-24T16:10:58.783 回答