我使用下面的代码来隐藏页面中的所有链接 - 现在我希望这种转换只发生在页面的某些部分而不是完整的页面。我确信这可以用于特定的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"> </div>
</blockquote>
</article>
</div>
我想只转换第一个网址(AMAZON 1)而不转换第二个网址(AMAZON 2)
js小提琴上的测试片段 - http://jsfiddle.net/bontp6jk/4/
答案 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);
});
});
答案 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");
}
});
});