通过标签名称和 class 名称选择元素

selecting an element by a tag name and class name

我正在尝试在具有已知 class 名称的 header 中捕获 a 标签。

检查元素:

<h3 class="c-card__title">
                    <a href="https://www.springer.com/book/9783030873233" data-track="click" data-track-action="clicked article" data-track-label="article-0">SARS-CoV-2 Spike Protein Convergent Evolution
                    </a>
                </h3>

我的代码:

var elements = document.getElementsByClassName("c-card__title").getElementsByTagName('a');
var vals = [];
for(var i=0;typeof(elements[i])!='undefined';vals.push(elements[i++].getAttribute('href')));
     for (var j = 0;typeof(vals[j])!='undefined'; ++j) {
     window.open(vals[j]);

我在浏览器控制台中 运行 它,但它给了我以下错误:

VM1065:4 Uncaught TypeError: document.getElementsByClassName(...).getElementsByTagName is not a function
    at <anonymous>:4:66

你不能在getElementsByClassName之后使用getElementsByTagName方法,你应该使用:

document.querySelectorAll(".c-card__title > a");

看看this