无法使用getElementsByClassName更改特定范围内的“a”标记中的网址

时间:2015-08-02 18:24:46

标签: javascript

我想要特定范围内<a>标签中的所有(网址)hrefs与“post-body entry-content”类更改为特定网址,这是我的代码我确实把它放在了身体的末尾标签..把它接缝不起作用,我不能得到我做错了导致控制台中没有错误。(即时通讯非常noob在Javascript)

基本上我试图用“adfly in the front”改变每个网址。

这是我的代码:

function links(){
    var adfly = "http://adfDOTly/000/";
    var els = document.getElementsByClassName('post-body entry-content')[0];
    var links = els.getElementsByTagName('a'),
        len = links.length;


    while( len-- ){
        links[len].href = adfly + links[len].href;
    }
}
links();

以下是我网站上实际工作的一些额外代码

//<![CDATA[
 function replaceurl(){
    var els = document.getElementsByTagName('a'),
        len = els.length;

    while( len-- ) {
  if (els[len].href.indexOf('#expand') > -1) {

  } else {
 els[len].href = els[len].href + "#expand";
  }

    }

  }

  function clearurl(){

   var els = document.getElementsByTagName('a'),
        len = els.length;

    while( len-- ) {
  if (els[len].href.indexOf('#expand') > -1) {
 els[len].href = els[len].href.replace('#expand','');
  } else {

  }

    }

  }






if (window.location.href.indexOf("#expand") > -1) {
$( "#main-wrapper" ).animate({'width':'984px'}, 'slow');
  $(".post-body iframe").animate({'height':'554px'},'slow');
  $("#sidebar-wrapper").hide("slow");

replaceurl();

}





$( "#expandmainwrapper2" ).click(function() {
$   ( "#sidebar-wrapper" ).show("slow");
  $( "#main-wrapper" ).animate({'width':'640px'}, 'slow');
  $(".post-body iframe").animate({'height':'360px'},'slow');
parent.location.hash = "";
clearurl();
    });


        $("#expandmainwrapper").click(function(){
          $( "#sidebar-wrapper" ).hide("slow");
            $( "#main-wrapper" ).animate({'width':'984px'}, 'slow');
  $(".post-body iframe").animate({'height':'554px'},'slow');
    parent.location.hash = "expand";
replaceurl();

            });

//]]>

在我的网站上它不起作用,我不知道为什么继承我的网站Websitelink

2 个答案:

答案 0 :(得分:1)

要获取所有链接,您应该使用:

var links = document.getElementsByTagName("a");

答案 1 :(得分:1)

getElementsByClassName返回的是“像对象一样的数组”,依次有getElementsByTagName

相反,请尝试querySelectorAll("a .post-body.entry-content") (注意:a.之间的空格,body.之间没有空格

循环遍历这些结果

请参阅https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll