如何使用jquery在加载时添加属性

时间:2013-10-17 06:31:49

标签: javascript jquery html

我有一个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属性页面加载时间我该如何实现这个

5 个答案:

答案 0 :(得分:2)

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

更新

DEMO

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

^ attribute starts with selector

更改HTML

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

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

它不是srchref

答案 1 :(得分:1)

$("a:contains('a1'),a:contains('a2')").attr("rel","no follow");

参考contains-selector

<强>更新

if($("a").attr("rel")=="no follow")
 {
// do stuff
  } else{// if not exist
  //do your stuff
  }

答案 2 :(得分:1)

三:

var A=document.getElementsByTagName("a");
for(var i=0;i< A.length;i++)
{
    if(A[i]['rel']!="")
    {
        A[i].setAttribute("rel","Something");
    }
}

答案 3 :(得分: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
    }
  );
});

答案 4 :(得分: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');
    }
});