Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据子元素所具有的类选择子元素_Javascript_Jquery - Fatal编程技术网

Javascript 根据子元素所具有的类选择子元素

Javascript 根据子元素所具有的类选择子元素,javascript,jquery,Javascript,Jquery,下面是我的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 cl

下面是我的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?
}
很抱歉格式化了。

这个怎么样

var allClasses = $("#QBS").find('li a[class^="qb_"]')
     .map(function () { 
          return this.className.split(" ").pop();
}).get();
console.log(allClasses);
假设以qb_*开始的课程在开始时,并且您只想参加比赛的最后一个课程

如果所有类名都是qb_模式,则:

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);
这个怎么样

var allClasses = $("#QBS").find('li a[class^="qb_"]')
     .map(function () { 
          return this.className.split(" ").pop();
}).get();
console.log(allClasses);
假设以qb_*开始的课程在开始时,并且您只想参加比赛的最后一个课程

如果所有类名都是qb_模式,则:

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);

如果我理解正确,那么:

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

.

如果我理解正确,那么:

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

拉小提琴

或者更精确的选择器

 $("#QBS > li a.qb_mode").each( ....
拨弄

或者更精确的选择器

 $("#QBS > li a.qb_mode").each( ....

你必须这样组织标签吗?您可以将QB名称放入一个不是类的属性中吗;为$QBS;我不能搞乱html。它是从我无法修改rails代码的其他地方生成的。你必须这样组织标签吗?您可以将QB名称放入一个不是类的属性中吗;为$QBS;我不能搞乱html。它是从我无法修改rails代码的其他地方生成的。您可以使用a.qb_模式,而不是查找以qb@cfs是的,如果这就是他所有的,但是看看他的陈述,一个有qb类,我猜可能是任何以qb开头的东西。a.qb_模式也很好。这是相当坚实的只是玩代码一点。谢谢,我喜欢另一个是一个短一点更好。我对你的一些最新答案投了赞成票,还认为你可以使用a.qb_模式,而不是寻找一个以qb@cfs是的,如果这就是他所有的,但是看看他的陈述,一个有qb类,我猜可能是任何以qb开头的东西。a.qb_模式也很好。这是相当坚实的只是玩代码一点。谢谢,我喜欢另一个是一个短一点更好。不过,我也对你的一些最新答案投了赞成票