2

我有一个 html 页面,其中我有许多锚标记我想在锚标记中添加 rel="no follow" 属性,如果它在源以超文本传输​​协议请求开头的页面上没有它。一些锚点已经有了 rel 属性。我怎样才能通过

例子:-

<html>
    <body>
        <p> Here we go</p>
        <a href="https://www.abc.com"> a1</a>
        <a href="https://www.abc.com" rel="nofollow" > a2</a>
        <a href="https://www.abc.com">a3</a>
    </body>
</html>

我想在页面加载时间在 a1 和 a2 上添加 rel= no follow 属性我该如何实现

4

5 回答 5

3
$('a').each(function(){
    if(this.innerHTML == 'a1' || this.innerHTML == 'a2'){
        $(this).attr('rel','nofollow');
    }
});

在 op 的 cpmment 之后更新

演示

$('a[href^="http"]').attr('rel', 'nofollow'); // all links starting with http wil get rel attribute

^ 属性以选择器开头

改变你的 HTML

<a src="https://www.abc.com"> a1</a>

<a href="https://www.abc.com"> a1</a>

这不是srchref

于 2013-10-17T06:34:33.343 回答
1
$("a:contains('a1'),a:contains('a2')").attr("rel","no follow");

参考包含选择器

更新

if($("a").attr("rel")=="no follow")
 {
// do stuff
  } else{// if not exist
  //do your stuff
  }
于 2013-10-17T06:34:23.037 回答
1

三这个:

var A=document.getElementsByTagName("a");
for(var i=0;i< A.length;i++)
{
    if(A[i]['rel']!="")
    {
        A[i].setAttribute("rel","Something");
    }
}
于 2013-10-17T06:59:25.940 回答
1
$(function () {// on page load time
  $('a').each(function () {// check every a element
    var text = $(this).html();// get the content
    if (text.indexOf('a1') > 0 || text.indexOf('a2') > 0) {// find a1 and a2
      $(this).attr('rel', 'no follow');// set the rel to no follow
    }
  );
});
于 2013-10-17T07:08:41.153 回答
0

更新代码

$('a:not([rel])[href^="http"]').attr('rel','nofollow')

Tushar Gupta 提供了一个可以查找所有 http 链接并添加属性的单行rel,但是它没有考虑已经具有rel属性的链接。

原始解决方案

// find all links that do not have a rel attribute
$('a:not([rel])').each(function() {

    var $this = $(this),
        href = $this.attr('href');

    // check that the link starts with http[s]://
    if(href && href.match(/https?:\/\//)) {
        $this.attr('rel', 'nofollow');
    }
});
于 2013-10-17T06:51:21.587 回答