2

ソースがハイパーテキスト転送プロトコルリクエストで始まるページにない場合、アンカータグに rel="no follow" 属性を追加したいアンカータグがいくつかあるhtmlページがあります。一部のアンカーには既に 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>

そうじゃsrcないhref

于 2013-10-17T06:34:33.343 に答える
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 に答える