使用jquery为特定的css类更改URL

时间:2014-12-28 18:38:24

标签: javascript jquery html css

我使用下面的代码来隐藏页面中的所有链接 - 现在我希望这种转换只发生在页面的某些部分而不是完整的页面。我确信这可以用于特定的div标签

 <script src="http://code.jquery.com/jquery-latest.min.js"></script>

<script>
 $( document ).ready(function() {  
 $("a[href^='http']").each(function() {
 var value = $(this).attr('href');
 $(this).attr('href','<url>/pqr.php?'+value);
});
});</script>

请建议我如何为特定div标签实现此链接转换。

解释问题陈述的示例 - 请考虑以下代码片段,仅对class =“testclass”进行网址转换

  <div class="messageContent">     
    <article>
        <blockquote class="messageText SelectQuoteContainer ugc baseHtml">

            <div class="testclass">
                <a href="http://www.amzon.in" target="_blank" class="externalLink" rel="nofollow">Amazon 1</a>
            </div>


<i>eps</i><br>
<span style="text-decoration: underline"><b><i>How to avail this offer </i></b></span><br>
<i>Add product into the cart<br>
Login or register<br>
Enter your shipping details<br>
Make the Final Payment.</i><br>
<span style="text-decoration: underline"><span style="font-size: 12px"><b>link</b>       </span></span><br>
<a href="http://www.amzon.in" target="_blank" class="externalLink" rel="nofollow">Amazon 2</a>
                <div class="messageTextEndMarker">&nbsp;</div>
            </blockquote>
            </article>
     </div>

我想只转换第一个网址(AMAZON 1)而不转换第二个网址(AMAZON 2)

js小提琴上的测试片段 - http://jsfiddle.net/bontp6jk/4/

2 个答案:

答案 0 :(得分:2)

您要做的是首先定义父类,然后为该类选择所有链接元素。

在jQuery中,您可以使用多个选择器,其工作方式如下:

$("#test")          // select div 'test'
$(".myClass")       // select class 'myClass'
$(".myClass #test") // select div 'test' in class 'myClass'
$("a")              // select all link elements

因此,您需要的是:$(".testclass a"),它选择班级.testclass中的所有链接元素。然后你可以使用jQuery .each()函数来处理链接元素。

$( document ).ready(function() {
    $(".testclass a").each(function() {
        var value = $(this).attr('href');
        alert(value);
    });
  });

jsFiddle

答案 1 :(得分:0)

试试这个

   $( document ).ready(function() {
        $("a[href^='http']").each(function() {
            var $this = $(this);            
            var value = $this.attr('href');
            if($this.closest('.testclass').length!==0){
            $this.attr('href','http://test.com/url.php?url=' + value + '&uid=test&origin=forum');
            $this.attr("target","_blank");    
}
        });
      });