使用 jquery 修改文本区域文本

Modify textarea text using jquery

本文关键字:文本 区域 修改 jquery 使用      更新时间:2023-09-26

美好的一天。如何使用 JavaScript 修改文本区域输入的文本

我的文本区域中有此内容,我想使用 jquery 删除 PublisherImprintName 标记

  <PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>

可能的输出是

<PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>

使用jquery可以吗?

搜索并找到了此代码,但我无法将其应用于我的问题,但解决方案几乎相似

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("PublisherImprintName").remove();
    });
});
</script>

谢谢。很抱歉问了太多问题

另一个问题:

如何删除标签名称但保留其值?

我在这里找到了解决方案:我尝试将其应用于我的问题,但我无法使其工作

删除 HTML 标记,但保留内部 HTML

这是我的文本区域上的文字

  <PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>

和可能的输出

<PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>

试试这个

var value = $("textarea").val();
value = value.replace(/<PublisherImprintName( |>).*?<'/PublisherImprintName>/gi,"");
$("textarea").val( value );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea>
  <PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>
</textarea>

你可以做这样的事情,

$(function() {
  function removeNode(str, nodeName) {
    var pattern = '<'+nodeName+'>[''s''w]+<'/'+nodeName+'>';
    var regex = new RegExp(pattern, 'gi');
    return str.replace(regex, '').replace(/^'s*['r'n]/gm, '');
  }
  
  $("#myBtn").on('click', function () {
    var txt = $("#txtArea").text();
    var newText = removeNode(txt, 'PublisherImprintName');
    $('#txtArea').text(newText);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txtArea" rows="10" cols="50">
  <PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>
</textarea>
<button id="myBtn">Button</button>

编辑:

对于您的另一个问题,您可以这样做..

$(function() {
  function removeNodeButRetain(str, nodeName) {
    var pattern = '<'/?'+nodeName+'>';
    var regex = new RegExp(pattern, 'gi');
    return str.replace(regex, '').replace(/^'s*['r'n]/gm, '');
  }
  
  $("#myBtn").on('click', function() {
    var txt = $("#txtArea").text();
    var newText = removeNodeButRetain(txt, 'PublisherInfo');
    $('#txtArea').text(newText);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txtArea" rows="10" cols="50">
  <PublisherInfo>
    <PublisherName>Ask question</PublisherName>
    <PublisherLocation>ph</PublisherLocation>
    <PublisherImprintName>ask stackoverflow</PublisherImprintName>
    <PublisherURL>stackoverflow.com</PublisherURL>
  </PublisherInfo>
</textarea>
<button id="myBtn">Button</button>

jquery中的搜索属性。通过使用jquery的属性功能,你可以删除它https://api.jquery.com/attribute-contains-selector/