javascript - 使用 jQuery 编码元素

标签 javascript jquery encoding

我想使用 jQuery 对元素的内容进行编码,但找不到自动执行此操作的函数,因此我尝试创建一个按内容执行此内容的函数。

例如,如果我有以下 HTML 元素:

<div>
    text&
    <p class="foo">barbaz8798++xyzzy</p>
    <span>1<5</span>
</div>

期望的输出是:

<div>
    text%26
    <p class="foo">barbaz8798%2B%2Bxyzzy</p>
    <span>1%3C5</span>
</div>

我只需要对这些元素的内容进行编码。我怎样才能做到这一点?

我想到的一种方法是通过将所有内容包装到包装器中然后调用 wrapper.find("*") 来选择元素,然后用 element 替换它们的文本。 text(encodeURIComponent(element.text())),请问还有更好的方法吗?

最佳答案

您可以遍历容器元素(示例中的 div)的内容,更改所有文本节点的内容

//need to use a more specific selector for the div
$('div').find('*').addBack().contents().each(function() {
  if (this.nodeType == Node.TEXT_NODE) {
    this.nodeValue = encodeURIComponent(this.nodeValue.trim());
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  text&
  <p class="foo">barbaz8798++xyzzy</p>
  <span>1<5</span>
</div>

关于javascript - 使用 jQuery 编码元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155808/

相关文章:

javascript - 如何在jsp中保留mysql的last_insert_id()

jquery - 使用 jQuery 遍历元素属性

jquery Ajax 响应 "undefined"使用 Internet Explorer

c++ - 将utf8编码的字符串转换为本地8位编码的字符串,并用空格替换不可转换的字符

用于发布多部分/表单数据编码数据的 Python 标准库

javascript - 迭代 Firebase ref 以加载其子项

javascript - 每次使用 ajax 调用循环后调用一个函数

javascript - 点击img后如何获取索引值

string - Node.js 无法解码字符串..字符乱码(问号)

javascript - typescript const x = [...this.x]