1

下面是我拥有的 HTML

<ul id="QBS">
  <li>
    <a class="qb_mode starting Rodgers" href="#">See Stats</a>
  </li>
  <li>
    <a class="qb_mode Manning" href="#">See Stats</a>
  </li>
  <li>
    <a class="qb_mode Brady" href="#">See Stats</a>
  </li>
</ul>

我想找到这个无序列表,然后告诉哪个项目具有起始 qb 类,然后返回具有其名称的类(brady rodger manning)等。

让我陷入循环的是链接包含在列表元素中的事实。

这是我正在尝试的:

element = $("#qbs"); // pretty sure I want this vs getElementbyDocumentID
children = element.children();` // gets me all the list elements

for (i=0;i<children.length;i++) {
  grandchild = children[i].children();
  ???? How would I get the 3rd class on this element?
}

对不起格式。

4

4 回答 4

2

这个怎么样?

var allClasses = $("#QBS").find('li a[class^="qb_"]')
     .map(function () { 
          return this.className.split(" ").pop();
}).get();
console.log(allClasses);

小提琴

假设以 qb_* 开头的课程位于开头,并且您只想参加比赛的最后一个课程。

如果你所有的类名都是 qb_mode 那么:

var allClasses = $("#QBS").find('.qb_mode').map(function () {
    return this.className.split(" ").pop();
}).get();

如果你想要所有这些,那么:

var allClasses = $("#QBS").find('.qb_mode').map(function () {
    var cls = this.className.replace(/qb_mode/,'');
    return cls.trim().split(/\W+/);
}).get();
console.log(allClasses);

小提琴

于 2013-07-03T22:09:23.993 回答
1

如果我理解正确的话,怎么样:

var name = $('#QBS a.qb_mode.starting').prop('class').replace(/\s*(qb_mode|starting)\s*/g,'');
console.log(name); // Rogers

在此处查看演示

于 2013-07-03T22:13:39.080 回答
1
a=document.getElementById('QBS');
var b=a.getElementsByClassName("qb_mode");
var i, j=b.length, result=[];
for(i=0;i<j;i++) {
  c=b[i].className.split(" ");
  result.push(c.pop());
}
return result;
于 2013-07-03T22:18:59.667 回答
1

小提琴http://jsfiddle.net/3Amt3/

var names=[];

$("#QBS > li a").each(function(i){
    var a=$(this).attr("class").split(" ");
    names[i]=a[(a.length-1)];
    console.log("Name  is " + names[i]);    
 });

或更精确的选择器

 $("#QBS > li a.qb_mode").each( ....
于 2013-07-03T22:27:19.853 回答