【问题标题】:How can I replace whole input field with its value in JavaScript or jQuery?如何用 JavaScript 或 jQuery 中的值替换整个输入字段?
【发布时间】:2019-04-22 12:55:36
【问题描述】:

说,我有一个 html 输入字段。

  <input type='text' class='txtData' />

在 documentready 方法中,我设置了该输入字段的值。

  $(".txtData").val(2);

现在我将此 html 输入字段转换为如下所示的字符串。

  var sText = "<input type='text' class='txtData' />";

现在我想用 $(.txtData).val() 替换这个 sText。

我该如何解决这个问题?我google了很多,但没有找到任何解决方案

我发现以下解决方案将整个 sText 替换为“”。

  sText.replace(/<input[^>]*>|<\/input>/gi, "");

但是如何将其替换为所选输入字段的值?

提前致谢。

【问题讨论】:

  • sText 包含一个字符串。所以你不能把它当作一个 DOM 元素来对待。也就是说sText引用的字符串没有value属性。
  • 不清楚你想做什么
  • @Randy,谢谢先生的回复。有什么方法可以解决我的需求吗?有什么想法吗?
  • sText = "&lt;span&gt;" + $('.txtData').val() + "&lt;/span&gt;" 并将其附加到文本框的位置?
  • 你想达到什么目的?

标签: javascript jquery regex replace


【解决方案1】:

您可以使用JQuery.parseHTMLstring 解析为html,然后使用该变量更新值。

示例:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
         var sText = "<input type='text' value='21' class='txtData' />";
         var html = $.parseHTML(sText);
          //alert('before update '+$(html).val())
          console.log('before update '+$(html).val());
         $(html).val(19);
          //alert('after update '+$(html).val())
           console.log('after update '+$(html).val());

    });
});
</script>

</head>
<body>

<button>UPDATE TEST</button>

</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2011-10-20
    • 1970-01-01
    相关资源
    最近更新 更多