0

我有一个字符串,我试图在该字符串中找到一个关键字并替换它。我试过使用search()which 返回关键字的位置。我也尝试过使用replace("this is what i want to replace", $(this)).

我基本上想要完成的是:我有以下 yql 语句:

$reCat = 'http://query.yahooapis.com/v1/public/yql?q=select * from html where url=\'http://reddit.com/\'and xpath=\'//div[@class="drop-choices srdrop"]//a[@class="choice"]\'&format=json&callback=?';

这给了我一个关于 reddit 上不同 /r/ 的列表。当我单击其中一个时,我希望单击的那个(例如http://reddit.com/r/askreddit)替换我的 yql 语句中的当前 url。

以下是一些无效的尝试:

$('#cat1 > li > a').click(function(){
    var url = $reCat;
    var final = url.replace("http://reddit.com", $(this));
    $('#cat1').append('<li><a href="#">' + final + '</a></li>');
});

$('#cat1 > li > a')是放置类别列表的位置。我只是将它附加到列表中以查看我的字符串是否更改,而事实并非如此。

另一种尝试:

$('#cat1 > li > a').click(function(){
    var reddit = 'http://reddit.com'
    var pos = $reCat.search(reddit);
    var url = $reCat;
    var result = [url.slice(0, pos), $(this), url.slice(pos)].join( '' );
    alert(result);
});

非常感谢您的帮助!

4

1 回答 1

1

在我看来,您正在尝试使用hrefof#cat1 > li > a作为替换值。如果是这种情况,只需将您的替换语句更改为

var final = url.replace("http://reddit.com", $(this).prop('href'));

你也可以使用$(this).attr('href')

于 2013-07-04T22:34:12.267 回答