jquery更改网址包含li类的一部分

时间:2013-02-28 03:54:36

标签: jquery url

我得到的一些列表有如下链接:

<li class="folder340 collapsable"><a href="http://www.domain.com/title01" class="">   <span>Title01</span></a></li>
<li class="folder360 collapsable"><a href="http://www.domain.com/title02" class=""><span>Title02</span></a></li>

我希望他们成为:

<li class="folder340 collapsable"><a href="http://www.domain.com/340" class="">   <span>Title01</span></a></li>
<li class="folder360 collapsable"><a href="http://www.domain.com/360" class=""><span>Title02</span></a></li>

我知道我应该使用类似的东西:

    var url = $(this).find('a').attr('href') + "this need to be the li class and minus the text folder";

有什么想法吗?

7 个答案:

答案 0 :(得分:1)

Var className = $(“。collapsible”)。attr(“class”);

然后你可以使用简单的JavaScript字符串函数删除文本“文件夹”。

然后将最终域存储在变量中,并使用$(“specefic-collapsible”)设置它.attr(“href”)= finalURL;

很抱歉,如果我的答案格式不正确,但我在手机上。

答案 1 :(得分:1)

尝试

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(function()
    {
        $('li.collapsable').each(function()
        {
            //console.log($(this).attr('class'));
            var cls  = $(this).attr('class').replace('folder',"").replace(" collapsable","");
            var link = $(this).find('a');
            link.attr('href',"http://www.domain.com/"+cls)
            console.log(cls);
        });
    });

</script>
<ul>
    <li class="folder340 collapsable"><a href="http://www.domain.com/title01" class="">   <span>Title01</span></a></li>
    <li class="folder360 collapsable"><a href="http://www.domain.com/title02" class=""><span>Title02</span></a></li>
</ul>

答案 2 :(得分:1)

尝试这样的事情:

$('.collapsable').each(function(){
    //Select some elements
    var $li = $(this);
    var $link = $li.find("a");

    //Grab the number from the class name beginning with 'folder'
    var folderNum = /folder([\d]+)/g.exec($li.attr("class"))[1];

    //Get the text from the span, this will be what we need to replace in the url 
    var titleToReplace = $link.find("span").text().toLowerCase();

    //Get the original URL
    var originalUrl = $link.attr('href');

    //Replace the part of the URL
    var newUrl = originalUrl.replace(titleToReplace, folderNum);

    $link.attr("href", newUrl);
});

此处的演示演示:http://jsfiddle.net/q4XJs/

答案 3 :(得分:1)

这有效:

$('li a').each(function(){
    var cls = $(this).parent().attr('class').split(' ')[0];

    var folder = cls.split('folder')[1];

$(this).attr('href', 'http://www.domain.com/'+folder);
});

jsfiddle:http://jsfiddle.net/nD4qL/

答案 4 :(得分:0)

试试这个: - http://jsfiddle.net/adiioo7/jdCVq/

JS: -

$(function(){
    $(".collapsable").each(function(){
        var oldhref=$(this).find("a").attr("href");
        var className = $(this).attr("class");
        className=className.replace("folder","").replace(" collapsable","");
        oldhref=oldhref.replace($(this).find("a").text().toLowerCase().trim(),className);
        $(this).find("a").attr("href",oldhref);
    });
});

答案 5 :(得分:0)

尝试以下方法:

$('li').each(function(){
    var n=$(this).attr('class').split(" ")[0].length;
     var x=$(this).attr('class').substring(n-3,n);
     $(this).find('a').attr('href','http://www.domain.com/'+x);
    });

答案 6 :(得分:-1)

<li class="folder340 collapsable"><a id="link1" href="http://www.domain.com/title01" class="">   <span>Title01</span></a></li>
<li class="folder360 collapsable"><a id="link2" href="http://www.domain.com/title02" class=""><span>Title02</span></a></li>

JS:

$("#link1").attr("href", "http://www.domain.com/340");

$("#link2").attr("href", "http://www.domain.com/360");