页面上所有文本框的值 - 不知道ID?

时间:2015-04-19 16:56:21

标签: javascript jquery

我正在开发一个Chrome扩展程序,当用户离开页面时,会保存该页面上文本框中的所有文本并将其输出到文件中。

如果我知道页面上文本框的ID,那么它不会成为问题,但问题是我需要扩展来获取页面上所有文本框的值没有知道ID,因为每次使用扩展名时它都是不同的网站。

另外,如何收集信息?在一个字符串?下到页面并将每个文本框逐个添加到文件中,而不是一个巨大的字符串,这将是一件好事。

我从来没有使用过jQuery或者理解它,并且可能有一个解决方案,它让我盯着我。如果有人建议使用它,请你解释一下吗?

提前致谢。我会发布我的代码,但我不知道从哪里开始 - 我不会有任何代码。

5 个答案:

答案 0 :(得分:3)

您可以使用$.each将其存储在数组中,如下:

var valsArr = [];
$("input[type=text]").each(function() {
    valsArr.push( $(this).val() );
});

或创建以name为键,value为其值的对象,如:

var valsObj = {};
$("input[type=text]").each(function() {
    valsObj[this.name] = $(this).val();
});

答案 1 :(得分:1)

你可以这样做:



function onClick(){
  var areas = document.getElementsByTagName("textarea");
  for(var i = 0; i < areas.length; i++){
    alert(areas[i].value);
  }
}
&#13;
<textarea></textarea>
<textarea></textarea>
<button onclick="onClick()">Gather information</button>
&#13;
&#13;
&#13;

另见&#34;保存到文件&#34;问题Using HTML5/Javascript to generate and save a file

答案 2 :(得分:0)

制作for循环

for(i=0; i < $("input[type='text']").length; i++){
   $("input[type='text']").index(i).value();
}

答案 3 :(得分:0)

使用选择器并在每个循环中应用它。

$(":text").each(function(){
    alert($(this).val());
});

答案 4 :(得分:0)

您可以使用.map():它返回一个数组。

var arr = $(":text").map(function() {
    return this.value
}).get();  //add join(',') after get() to get a simple comma separated list.

您也可以使用input[type="text"]伪选择器代替:text

<强> Demo