查找文本区域中的所有超链接并添加rel nofollow

时间:2019-06-15 09:48:42

标签: javascript html

我有textarea元素。当用户在文本区域内键入一些HTML代码并尝试保存该代码时,该函数应自动找到所有超链接并添加rel = nofollow属性。

我已经根据给定的示例更新了函数,但这给了我警报中的url值。

<textarea id="textareaCode"></textarea>

1 个答案:

答案 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>