是否有可能jquery使用CSS类'.map'搜索所有输入?

时间:2011-03-31 03:48:16

标签: jquery

只是想知道,jQuery可以搜索所有具有CSS类“。map”的输入,并将输入的ID和类返回到数组中吗?

示例:

如果我的页面上有以下输入:

<asp:TextBox ID="test" runat="server" MaxLength="12" Width="3em" CssClass="mapTest" />
<asp:TextBox ID="test1" runat="server" MaxLength="12" Width="3em" CssClass="mapTest1" />
<asp:TextBox ID="test2" runat="server" MaxLength="12" Width="3em" CssClass="mapTest2" />
<asp:TextBox ID="test3" runat="server" MaxLength="12" Width="3em" CssClass="mapTest3" />

jQuery是否可以在数组中格式化结果,如下所示?

testArr[0] = 'test-mapTest';
testArr[1] = 'test1-mapTest1';
testArr[2] = 'test2-mapTest2';
testArr[3] = 'test3-mapTest3';

另外,在.net中我必须使用以下代码<%= test.ClientID %>然后它只能得到正确的ID号,所以我不知道我怎么能在jquery然后只能得到正确的ID。

4 个答案:

答案 0 :(得分:4)

当然可以!

var my_array = [];
$(":input[class^=map]").each(function(index, element) {
  my_array.push(element.attr("id") + "-" + element.attr("class"));
});

上面的示例使用jQuery的.attr()方法来访问元素的id和class属性,仅用于说明目的。直接访问元素的内置属性通常更快更容易阅读:

var my_array = [];
$(":input[class^=map]").each(function(index, element) {
    my_array.push(this.id + "-" + this.className);
});

答案 1 :(得分:3)

以下选择器将匹配您的每个地图输入:$("input[class^=map]")。它将匹配任何具有以map开头的类的输入。然后,您可以从那里拉出所需的一切。

答案 2 :(得分:3)

你的问题陈述......

  

只是想知道,jQuery可以搜索所有具有CSS类“.map”

的输入

所以我回答......

var results = [];

$(':input.map').each(function() {
   results.push(this.id + '-' + this.className);
});

但是,您的示例数据显示匹配的类例如mapTest,而不是map的类。您需要将选择器更改为:input[class^=map]

答案 3 :(得分:1)

搜索所有输入,检查他们是否有一个包含字符串"map"的类,如果他们这样做,则将它们放在一个数组中:

  var testArr = [];
  $.each($("input"), function(){
   var thisInput = $(this);
   if(thisInput.attr("class").indexOf("map"){
    testArr.push(thisInput.attr("id") + "-" + thisInput.attr("class"));
   }
  });