在字符串中查找关键字并替换它

时间:2013-07-04 22:28:54

标签: javascript jquery

我有一个字符串,我试图在该字符串中找到一个关键字并替换它。我尝试使用search()返回关键字的位置。我也尝试过使用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);
});

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

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

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

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