我得到的一些列表有如下链接:
<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";
有什么想法吗?
答案 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");