我有textarea元素。当用户在文本区域内键入一些HTML代码并尝试保存该代码时,该函数应自动找到所有超链接并添加rel = nofollow属性。
我已经根据给定的示例更新了函数,但这给了我警报中的url值。
<textarea id="textareaCode"></textarea>
答案 0 :(得分:0)
document.getElementById
返回单个元素而不是数组。使用.value
获取textarea
的内容,然后可以使用DOMParser
将字符串转换为DOM
。
function addrel() {
const rel_attribute = document.getElementById('textarea_code').value;
const dom = new DOMParser().parseFromString(rel_attribute, 'text/html');
[...dom.getElementsByTagName('a')].forEach((a) => {
a.setAttribute('rel', 'nofollow');
console.log(a);
});
}
<textarea id="textarea_code"></textarea>
<a href="#" onclick="addrel()">Add Attribute</a>
编辑---
function naming() {
var rel_attribute = document.getElementById('textareaCode').value;
var dom = new DOMParser().parseFromString(rel_attribute, 'text/html');
[...dom.getElementsByTagName('a')].forEach((a) => {
a.setAttribute('rel', 'nofollow');
alert(a.outerHTML);
});
}
<textarea id="textareaCode"></textarea>
<a href="#" onclick="naming()">Add Attribute</a>