首页 > 解决方案 > 在 JavaScript 中赋值

问题描述

我在按钮单击时从 textarea 获取用户输入数据。如果用户在 textarea 中放置一些超链接代码,该功能会自动识别并添加rel=nofollow. 现在我需要再次在 textarea 中分配这些新的超链接代码并替换旧的。

我能够添加rel=nofollow并能够提醒它

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()">Execute Function</a>

标签: javascripthtml

解决方案


使用replace()

function naming() {
  var textarea = document.getElementById('textareaCode');
  var rel_attribute = document.getElementById('textareaCode').value;
  var dom = new DOMParser().parseFromString(rel_attribute, 'text/html');
  [...dom.getElementsByTagName('a')].forEach((a) => {
    let original = a.outerHTML
    a.setAttribute('rel', 'nofollow');
    textarea.value = textarea.value.replace(original, a.outerHTML)
  });
}
<textarea id="textareaCode" cols=70 rows=5>
<a href="#" onclick="naming()">Execute Function</a>
</textarea>
<br/>
<a href="#" onclick="naming()">Execute Function</a>


推荐阅读