如何使用jQuery选择数组中的项?

时间:2009-08-13 21:49:06

标签: jquery

我有这一行在我的页面上成功选择了“myclass”类的所有元素:

var myTerms = $(".myTerm");

以上一行有效,myTerms是所有myTerm的数组,每个myTerm都包含“subTerms”。

然后当我遍历每个myTerm时,我想使用jQuery在myTerm中返回“subTerms”的数组。

我试过了:

var myTerms = $(".myTerm");
for (var i = 0; i < myTerms.length; i++) {
    var myTerm = queryTerms[i];
    subTerms = myTerm.$("subTerms");

但那是不行的。 是jQuery甚至是为此目的还是更好地回到普通的旧java脚本。

修改

subTerm是myTerm

中元素的className

5 个答案:

答案 0 :(得分:6)

有点困惑于子对象是什么,但我会试一试。

$('.myTerm').each(function(){
  subTerms = $(this).children();
});

**编辑**

如果您想要选择选项,请执行

$('.myTerm').each(function(){
  subTerms = $(this).children('.subTerm option');
});

答案 1 :(得分:2)

我不确定你在问什么。听起来你想要匹配列表中包含类myterm +另一个类的所有项目,例如<li class="myterm subterm1">

我会在选择器中处理这个问题。 jQuery选择器可以匹配多个类,如果它们以逗号分隔,例如“subterm1,subterm2,subterm3”所以如果你把它们加入一个字符串,你可以对它进行过滤。

var result = $(".myterm").filter(myterms.join(","));

答案 2 :(得分:1)

要指出的一切事情。 $(".myTerm")不是一个数组 - 它是一个jquery对象,你可以在其上使用for循环,但each要好得多。 each()函数this内部引用DOMElement。此外,如果要在jQuery对象的内部搜索更多对象,可以使用$element.find('.subterm')$('.subTerm', element)

$(".myTerm").each(funciton() {
   // look for any .subTerm that exist underneath of us
   var subTerms = $(".subTerm", this);

   // do something with subTerms as an example....
   var text = [];
   subTerms.each(function() {
     // .val() assuming its an option element
     // .text() might be better.
     text.push($(this).val()); 
   });

   alert(text.join(";"));
});

答案 3 :(得分:1)

您可以将第二个查询调用的范围仅限于找到的术语

$(".myTerms").each(function() { 
  var sub = $(".subTerms", this);
});

答案 4 :(得分:0)

如果您不想更改代码,则可以使用以下

var myTerms = $(".myTerm");
for (var i = 0; i < myTerms.length; i++) {
    var myTerm = queryTerms[i];
    var $myTerm = $(myTerm);
    subTerms = $myTerm.find("subTerms");
}