我必须替换String
var str =' <a name="tom">test</a>+<a name="jerry">test</a>';
到tom + jerry
像这样我们可以有很多var str = '<a name="tom">test</a>+<a name="jerry">test</a><a name="tom">test</a>+<a name="jerry">test</a>';
然后输出应为tom+jerrytom+jerry
答案 0 :(得分:1)
我假设你想使用jQuery,因为jQuery标签。 这是一个jQuery示例,说明如何执行此操作:
$('a').each(function(){//Foreach anchor
var name = $(this).attr('name');//get the value of the name attribute of the anchor
$(this).text(name); //write the value in the anchor as text
});
答案 1 :(得分:1)
我假设你想要的是拥有&#39;名称&#39;属性是文本:
var tags = document.getElementsByTagName('a');
for (var i = 0; i< tags.length; i++) {
tags[i].innerHTML = tags[i].getAttribute('name');
}
如果你想把结果放在一个字符串中..
var tags = document.getElementsByTagName('a');
function resultInString() {
var result = "";
for (var i = 0; i< tags.length; i++) {
result += tags[i].getAttribute('name') + " + ";
}
return result;
}
这里是正则表达式,如果这是一个字符串:
var r = /name="([\w\d]+)"/g
var html = '<a name="tom">test</a>+<a name="jerry">test</a>';
function getString(html) {
var match;
var result;
while (match = r.exec(html)) {
result += match[1];
}
return result;
}
getString(html);
答案 2 :(得分:1)
您可以使用:
$('a').text(function(){
return this.getAttribute('name');
});
不需要循环来实现此功能,您可以使用.text()
方法和回调函数,该函数返回当前锚点的属性name
。
根据你的评论:我想要一个变量中的字符串
var htmlstr = '';
$('a').each(function(){
htmlstr += $(this).get(0).outerHTML;
});
答案 3 :(得分:1)
假设您需要一个唯一的值列表,无论问题多么奇怪: 使用哈希映射:
var uniqueValueMap = {};
$( 'a[name]' ).each( function( idx, elem ) {
var nameValue = elem.attr( 'name' );
uniqueValueMap[ nameValue ] = nameValue;
} );
console.log( 'Unique names:', uniqueValueMap );
// "Casting" hash to an array and making a joined string
var arrayOfValues = Array.prototype.slice.call( uniqueValueMap );
var stringOfLife = arrayOfValues.join( '+' );
console.log( 'Final result:', stringOfLife );
如果名称相同,它将使用最新的出现,而不是第一次出现。要解决此问题,您需要在var nameValue...
之后添加一个检查,如下所示:
if ( uniqueValueMap.hasOwnProperty( nameValue ) ) continue; //this could be (return true;) instead of (continue;) for "jquery.each" loops. I just don't remember, sorry for inconvience