2009-11-24 55 views
1

我知道几乎一无所知的jQuery,请帮我jQuery的更换URL的一部分

我试试这个

function googlemapLinks { 
$('div.gmnoprint a').attr("href").replace('ll','q'); 
} 

它不工作 我有一个<div class="gmnoprint">在该专区谷歌地图把一个javascript链接 maps.google.com/maps?ll=5 ..... 我需要maps.google.com/maps?q=5 .....

你能告诉我一个函数吗我可以放在脚本文件中?

回答

1

要设置值为attr,您需要将新值作为第二个参数传递。试试这个:

$('div.gmnoprint a').attr('href', $('div.gmnoprint a').attr('href').replace('ll','q')); 
3

试试这个:

function googlemapLinks { 
    var lnk = $('div.gmnoprint a').attr("href"); 
    $('div.gmnoprint a').attr("href",lnk.replace('ll','q')); 
} 
+0

谢谢d和TheVillageIdiot取代刚才那个实例。看起来非常可行,但它不工作...也许是因为它googlemap是由JavaScript写入,而不是HTML? 是否有可能有可能抢在它LL该网址,并将它下面的文本,然后带Q 功能appendMap(){取代 \t如果($(“块gmap_location”)。长度> 0){ ('。block-gmap_location')。append($('

请参阅Google maps

')); \t} – kritter 2009-11-24 11:02:37

+1

如果它不工作,这可能是因为代码执行时$('div.gmnoprint a')'为空。确保在显示地图后调用googlemapLinks(),并确保它存在。尝试在浏览器的地址栏中输入'javascript:alert($('div.gmnoprint a')。length);'以确保选择器正在工作并返回所有项目 – 2009-11-24 13:43:56

0

有点晚的谈话,但你可以尝试:

$('.gmnoprint a').each(function() { 
    this.href = this.href.replace('ll','q'); 
}) 

其他功能似乎循环,而这将找到的链接,并然后用'q'代替'11'。那么,它应该= P

0

试试这个更改gmnoprint容器内的任何链接或标签href。如果你不使用每个循环,所有的hrefs将包含页面上的第一个href实例。 此代码看起来在每一个标签,如果它运行到11并更改文本到q

$('.gmnoprint a').each(function(){ 
    $(this).attr('href', $(this).attr('href').replace('11','q')); 
});