Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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解析来自<;a href>;链接_Javascript_Jquery_Html_Href - Fatal编程技术网

javascript解析来自<;a href>;链接

javascript解析来自<;a href>;链接,javascript,jquery,html,href,Javascript,Jquery,Html,Href,假设我有 <a href="/example1">ThisTextChanges</a> <a href="/example2">ThisTextChanges</a> <a href="/example3">ThisTextChanges</a> <a href="/example4">ThisTextChanges</a> 我想迭代这些,得到“ThisTextChanges”,这是一些变化的

假设我有

<a href="/example1">ThisTextChanges</a>
<a href="/example2">ThisTextChanges</a>
<a href="/example3">ThisTextChanges</a>
<a href="/example4">ThisTextChanges</a>

我想迭代这些,得到“ThisTextChanges”,这是一些变化的数字,最准确地说是计时器

我怎样才能做到这一点?jquery很好。 它们位于id为“main_container”的div中。
我需要将文本放在一个变量中,因此href对于知道我为每个变量使用哪个变量很重要。

您可以迭代并将它们存储在数组中

var arr = [];   

$("a").each(function(){

  arr.push($(this).text());
  console.log( arr );

});

你可以通过多种方式实现这一目标。此示例使用
for循环

var main_container = document.getElementById("main_container");
var items = main_container.getElementsByTagName("a");
for (var i = 0; i < items.length; ++i) {
      // do something.....
}
var main_container=document.getElementById(“main_container”);
var items=main_container.getElementsByTagName(“a”);
对于(变量i=0;i
让我们将任务分解为几个步骤:

  • 获取所有链接的句柄(
    document.querySelectorAll
  • 了解如何获取
    a
    标记(
    childNode[0].nodeValue
    )的当前文本

  • 把它们放在一起(
    Array.from
    Array.map

获取我们所有链接的句柄: 我们将使用
document.querySelectorAll
获取与选择器匹配的所有节点的列表。这里我将使用选择器
a
,但是您可能有一个类指定这些链接与页面上的其他链接:

var links = document.querySelectorAll('a');
获取链接的文本 这个有点复杂。有几种方法可以做到这一点,但其中一种更有效的方法是通过子节点(主要是文本节点)进行循环,并为每个节点追加
节点.nodeValue
。我们可能不需要使用第一个子元素的
nodeValue
,但是我们将构建一个函数来循环并附加每个元素

function getText(link){
    var text = "";
    for (var i = 0; i < link.childNodes.length; i++){
        var n = link.childNodes[i];
        if (n && n.nodeValue){
            text += n.nodeValue;
        }
    }
    return text;   
} 

var数组=[];
$('#主容器a')。每个(函数(){
array.push($(this.html());
});
console.log(数组)

请尝试:

$('#main_container > a[href]').each(function() {
    var tes = $(this).attr('href').substring(1);
    window[tes] = $(this).text();
});

将生成名为
example1
且值为
123
的变量,依此类推。

您只需在a选择器中添加条件,如下所示:

var array = [];
$('#main_container a[href="/example2"]').each(function(){
   array.push($(this).html());
});
console.log(array);

在选择器中使用
a
标记。您的意思是
将生成名为
example1
且值
123
的变量,依此类推?这看起来很简单,就是这样。如何才能让它搜索特定的url?例如,仅收集“/example2”的文本?因为这是我知道的唯一一种方法,解析将进入每个变量,它是通过相关的url进行的。很高兴我可以帮助你,如果它解决了你的问题或帮助了你,请接受!我还需要一点帮助,在我写完之前,我正在尝试断行并发布$('#main_容器a[href=“/example2”]”)。每个(函数(){array.push($(this.html());});console.log(数组);看看我在底部的答案和代码片段,我无法将代码粘贴到注释部分!