-
jquery element content
- Dom元素提供innserHTML来设定元素的内部的html内容。这可以直接把string的HTML变成Dom元素,同时也可以把Dom元素变成html标签的string.有的时间我们只需要其text内容,不要标签。这个时候可以采用regexp把标签给过滤了,就是text的内容。
- 第三种的内容是直接显示出来的Dom元素。一个元素的这种内容就是所有子元素。第四种内容指是的元素的value值,特别是Input类型的元素。因为对于Input类型来讲,value就是其元素内部的content。
- Jquery也分别就这四种形式提供了实现。
- 5.4.1 html
- Html是取内部的html,包含标签,如<div><b>xx</b></div>,html返回就是<b>xx</b>。Html简单,取值就直接innerHTML,设值就直接插入value。
-
-
- html : function(value) {
- return value == undefined ? (this[0] ? this[0].innerHTML : null) : this.empty().append(value);
- },
- 在这里还是觉得直接采用innerHTML,它的速度会更快。只要加上一个判断,如果value是string的话,就直接采用innerHTML。不需要采用append转来转去。
- 5.4.2 text
- Jquery的text可以把document.createTextNode(text)的节点加到已经除去所有子元素的当前元素的内部。觉得对于IE,采用insertAdjacentText速度会更快。取值话,text会把当前元素的所有文本节点都连串成字符串。
-
-
-
-
-
-
- text : function(text) {
- if (typeof text != "object" && text != null)
- return this.empty()
- .append((this[0] && this[0].ownerDocument || document)
- createTextNode(text));
-
-
- var ret = "";
- jQuery.each(text || this, function() {
-
- jQuery.each(this.childNodes, function() {
- if (this.nodeType != 8)
- ret += (this.nodeType != 1
- ? this.nodeValue: jQuery.fn.text([this]));
- });
- });
- return ret;
- },
-
- 5.4.3 value
-
-
-
- val : function(value) {
- if (value == undefined) {
- if (this.length) {
- var elem = this[0];
-
-
- if (jQuery.nodeName(elem, 'option'))
- return (elem.attributes.value || {}).specified ? elem.value: elem.text;
-
- if (jQuery.nodeName(elem, "select")) {
- var index = elem.selectedIndex, values = [],
- options = elem.options, one = elem.type == "select-one";
- if (index < 0) return null;
-
-
-
- for (var i = one ? index : 0, max = one
- ? index + 1 : options.length;i < max; i++) {
- var option = options[i];
- if (option.selected) {
-
-
- value = jQuery(option).val();
- if (one) return value;
- values.push(value);
- }
- }
- return values;
- } else
- return (this[0].value || "").replace(/\r/g, "");
- }
-
- return undefined;
- }
- if (value.constructor == Number)value += '';
-
- return this.each(function() {
- if (this.nodeType != 1) return;
-
-
- if (value.constructor == Array
- && /radio|checkbox/.test(this.type))
- this.checked = (jQuery.inArray(this.value, value) >= 0 || jQuery
- .inArray(this.name, value) >= 0);
-
-
-
- else if (jQuery.nodeName(this, "select")) {
- var values = jQuery.makeArray(value);
- jQuery("option", this).each(function() {
- this.selected = (jQuery.inArray(this.value,
- values) >= 0 || jQuery.inArray( this.text, values) >= 0);
- });
- if (!values.length) this.selectedIndex = -1;
- this.value = value;
- });
- },
- 5.4.4 content
- Jquery的Content其实就是元素的所有的子元素的集合。
- jQuery.each( {
- contents : function(elem) {
- return jQuery.nodeName(elem, "iframe") ? elem.contentDocument
- || elem.contentWindow.document : jQuery
- .makeArray(elem.childNodes);
- }
- }, function(name, fn) {
- jQuery.fn[name] = function(selector) {
- var ret = jQuery.map(this, fn);
- if (selector && typeof selector == "string")
- ret = jQuery.multiFilter(selector, ret);
- return this.pushStack(jQuery.unique(ret));
- };
- });
-
相关阅读:
(转载)C#如何在任务管理器中不显示指定的窗体
Windows上配置Mask R-CNN及运行示例demo.ipynb
如何选择普通索引和唯一索引?
relay(跳板机)搭建
javascript 9x9乘法口诀表
canvas画布爆炸
Chrome Network Timing 解释
JavaScript中对数组的定义
jquery each 和 map 区别
css 兼容性转换网站
-
原文地址:https://www.cnblogs.com/rooney/p/1346462.html
Copyright © 2020-2023
润新知