jQuery text(),parseHTML() 方法
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
。
默认情况下,如果没有指定或给定null
或 undefined
,context
是当前的document
。如果HTML
被用在另一个document
中,比如一个iframe
,该frame
的文件可以使用。
Security Considerations(安全注意事项)
大多数的jQuery
的API
接受的HTML
字符串将运行所包含在HTML
中的脚本。jQuery.parseHTML
不运行HTML
中解析出来的脚本,除非 keepScripts
参数为true
。然而,它仍然是可能在大多数环境中间接地执行脚本,例如通过<img onerror>
属性。调用者应该意识到这一点,并通过清理或避免任何不可信来源的输入,如URL
或cookies
,来防止它。为了未来的兼容性,当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:
- #text
- B
- #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" 转载请保留原文链接及作者。