【问题标题】:How to replace the value attribute in an HTML string?如何替换 HTML 字符串中的 value 属性?
【发布时间】:2020-09-09 09:15:25
【问题描述】:

给定:

let mystr = "<input class=\"text-box single-line\" id=\"item_Name\" name=\"item.Name\" type=\"text\" value=\"Luis Tiant\">";

我想使用 JS 删除值参数 "Luis Tiant" 中的文本。

明确一点:我想在字符串本身中将value="Luis Tiant" 更改为value="" 。这是一个字符串,还不是 DOM 元素。在我删除值之后然后我会将它添加到 DOM。

【问题讨论】:

  • document.getElementById("item_Name").value = "";
  • 感谢您的回复。这行不通。我为没有更清楚而道歉。 mystr 是一个字符串,我想在字符串中将 value="Luis Tiant" 更改为 value=""
  • @CarlosVasquez 我已经更新了下面的答案以满足您的新要求。

标签: javascript html regex string


【解决方案1】:

获取input 元素并将其value 设置为''(空字符串)。

下面的示例在 2 秒后清除输入值,因此您可以看到它的实际效果:

setTimeout(() => {
  document.querySelector('input').value = '';
}, 2000);
<input class="text-box single-line" id="item_Name" name="item.Name" type="text" value="Luis Tiant">

更新

上述问题已得到澄清。如果您想替换字符串本身中的 value 属性,您可以使用正则表达式和 replace 方法来完成,如下所示:

let string = "<input class=\"text-box single-line\" id=\"item_Name\" name=\"item.Name\" type=\"text\" value=\"Luis Tiant\">";

console.log(string);

let newString = string.replace(/value=\".*\"/, "value=\"\"");

console.log(newString);

【讨论】:

  • @CarlosVasquez 如果这回答了您的问题,请点击答案分数下方的灰色复选标记接受答案,谢谢!
【解决方案2】:

通过初始化ID,您也可以这样做。

document.getElementById("item_Name").value = "Your new Value Here";

【讨论】:

    【解决方案3】:

    我建议使用Document.createElement() 方法和相关API 以编程方式创建html 元素,而不是设置一个等于html 字符串的变量,然后使用字符串操作来更改元素属性。然后你就可以访问像Element.removeAttribute()这样的方法了

    【讨论】:

      【解决方案4】:

      let mystr = "<input class="text-box single-line" id="item_Name" name="item.Name" type="text" value="Luis Tiant">"
      var res = mystr.match(/value=\".*\"/g);
      var str = mystr.replace(res, 'value=""');

      【讨论】:

        猜你喜欢
        • 2019-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-14
        • 2020-07-04
        • 1970-01-01
        相关资源
        最近更新 更多