jQuery text(),parseHTML() 方法

  1. 设置文本内容
  2. 在项目中遇到的问题
  3. jQuery.parseHTML
    1. Security Considerations(安全注意事项)
    2. 例子
    3. 结果
    4. Content:
    5. Node Names:

text() 方法方法设置或返回被选元素的文本内容(会删除 HTML 标记)。

设置文本内容

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".btn1").click(function(){
    $("p").text("Hello world!");
  });
  //使用函数设置文本内容
  //$(selector).text(function(index,oldcontent))
  //index - 可选。接受选择器的 index 位置。
  //oldcontent - 可选。接受选择器的当前内容。
  $("button").click(function(){
    $("p").text(function(n,x){
      return x + "这个 p 元素的 index 是:" + n;
    });
  });
});
</script>
</head>
<body>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button class="btn1">改变所有 p 元素的文本内容</button>
</body>
</html>

在项目中遇到的问题

需求:文本框使用富文本编辑器xheditor,要求文本框的内容不能为空。
分析:使用 $("#textarea").val() 获得的值,会包含 html 标签,如:

,这样无法判断是否为空。使用 $("#textarea").text() 获得的值一直为"",所以采用以下方法。

String.prototype.LTrim = function () {
  return this.replace(/(^\s*)|(\s*$)/g, "");
}
var textarea = $("#textarea").val();
var log = $( "#log" ), html = $.parseHTML( textarea );
log.text("");//清空
log.append( html );
var textarea3 = log.text();
if(textarea3== null || textarea3.LTrim()==''){
    alert("不能为空!");
    return false;
}

在界面上加入

<div id="log" style="display: none;">

jQuery.parseHTML

jQuery.parseHTML( data [, context ] [, keepScripts ] )

  • data
    用来解析的HTML字符串。
  • context(默认: document)
    DOM元素的上下文,在这个上下文中将创建的HTML片段。
  • keepScripts (默认: false)
    一个布尔值,表明是否在传递的HTML字符串中包含脚本。

jQuery.parseHTML使用原生方法将字符串转换为一个DOM节点的集合,然后可以插入到文档。 这些方法渲染所有尾随或前导文本(即使只是空格)。 为了防止尾随/前导空格被转换为文本节点,你可以通过将HTML字符串传递给jQuery .trim

默认情况下,如果没有指定或给定nullundefinedcontext是当前的document。如果HTML被用在另一个document中,比如一个iframe,该frame的文件可以使用。

Security Considerations(安全注意事项)

大多数的jQueryAPI接受的HTML字符串将运行所包含在HTML中的脚本。jQuery.parseHTML不运行HTML中解析出来的脚本,除非 keepScripts参数为true。然而,它仍然是可能在大多数环境中间接地执行脚本,例如通过<img onerror>属性。调用者应该意识到这一点,并通过清理或避免任何不可信来源的输入,如URLcookies,来防止它。为了未来的兼容性,当keepScripts为不确定的或false时,调用者不应该依赖于这个能力来运行任何脚本内容。

例子

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<div id="log">
  <h3>Content:</h3>
</div>

<script>
var $log = $( "#log" ),
    str = "hello, <b>my name is</b> jQuery.",
    html = $.parseHTML( str ),
    nodeNames = [];

// Append the parsed HTML
$log.append( html );

// Gather the parsed HTML's node names
$.each( html, function( i, el ) {
    nodeNames[i] = "<li>" + el.nodeName + "</li>";
});

// Insert the node names
$log.append( "<h3>Node Names:</h3>" );
$( "<ol></ol>" )
  .append( nodeNames.join( "" ) )
  .appendTo( $log );

</script>

</body>
</html>

结果

Content:

hello, my name is jQuery.

Node Names:

  1. #text
  2. B
  3. #text

http://www.w3school.com.cn/jquery/manipulation_text.asp
http://www.css88.com/jqapi-1.9/jQuery.parseHTML/


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:jQuery text(),parseHTML() 方法

文章字数:892

本文作者:Bin

发布时间:2016-04-26, 10:24:18

最后更新:2019-08-21, 15:34:13

原始链接:http://coolview.github.io/2016/04/26/JavaScript/jQuery%20text()%EF%BC%8CparseHTML()%20%E6%96%B9%E6%B3%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录