我有一系列包含网址的span元素,但是在字符串的开头和结尾都有不需要的字符。
<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>
<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>
<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>
<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>
空格冒号在开头有另一个空格和引用,在末尾有引号
这些更正后的值必须放在保留在<a>
代码中的span
代码中,并将网址设为href
和链接名称。
即
<span class="value"><a href="http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/">http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/</a></span>
这是我到目前为止所拥有的
$('span.value').each(function () {
$('.value').text().substr(4, this.length-2);
});
$('span.value').each(function () {
$('span.value').wrapInner(function () {
return "<a href='" + $('span.value').nodeValue + "'></a>";
});
});
我不确定如何将它们组合成一个功能
答案 0 :(得分:1)
这是一种没有正则表达式的方法。
$('.value').each(function(){
var res = $(this).text().split("").filter(function(index){
return index != "'" && index != ":" && index != " ";
});
console.log(res.join(""));
});
修改强>
$('.value').each(function(){
var res = $(this).text().split("").filter(function(index){
return index != "'" && index != " ";
}).slice(1);
console.log(res.join(""));
});
答案 1 :(得分:0)
使用Javascript的替换方法与正则表达式。
var string = "<span class=\"value\"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>";
var new_string = string.replace(/(.*?) : '(.*?)'/i, "$1<a href='$2'>$2</a>");
alert(new_string);
&#13;
答案 2 :(得分:0)
我不确定如何将它们合并为一个功能
您已经在选择要操作的元素,然后使用.each()
迭代该集合。在回调中,this
将是迭代步骤的当前元素。所以将它包装在jQuery对象中并使用它。
$('span.value').each(function () {
var target = $(this).text().substr(4, this.length-2);
$(this).wrapInner(function () {
return "<a href='" + target + "'></a>";
});
});