> 馆藏中心

jq js dom

来源:cnblogs 编辑:王强

① CSS入UI② CSS作为组件的一个节点而存在,并且会被“格式化”,即选择器带id前缀,形成的组件如图所示:这样做基本可以规避css污染的问题,解决绝大多数问题,但是更优的方案总是存在,比如web components中的shadow dom!javascript的组件基本是不可重用的,几个核心原因是:① 组件实例与实例之间的html、css、Javascript很容易互相污染(id污染、class污染、js变量污染......)② 一个组件依赖于HTML、CSS、Javascript,而三者之间是分离的,而组件内部控制于js,更改后外部可能出问题通过昨天的处理,我们将一个组件所用到的全部合到了一起,却又分离成了三个文件:① ui.js② ui.html③ ui.css这种处理一方面透露着解耦的思想,另一方面体现着解依赖的想法,在这个基础上想引入shadow dom技术,变得非常轻易。什么是shadow domshadow dom是一种浏览器行为,他允许在document文档中渲染时插入一个独立的dom子树,但这个dom树与主dom树完全分离的,不会互相影响。从一张图来看:shadow dom事实上也是一个文档碎片,我们甚至可以将之作为jQuery包装对象处理:存在在shadow dom中的元素是不可被选择器找到的,比如这种做法会徒劳无功:$('沙箱中的一个元素') => []另一个比较重要的差别是,外部为组件定义的事件,比如click事件的e.target便只能是组件div了,也就是这个组件事实上只有一层,一个标签,内部的结构不会被暴露!引入框架原来我们的组件是这样的结构:1 <div id="ui-view-16" style="">2 <div class="cm-num-adjust">3 <div class="cm-num-adjust">4 <span class="cm-adjust-minus js_num_minus disabled "></span><span class="cm-adjust-view js_cur_num "5 contenteditable="true">1个</span> <span class="cm-adjust-plus js_num_plus "></span>6 </div>7 </div>8 </div>框架会主动创建一个包裹层,包裹层内才是组件dom,经过昨天的处理,组件变成了这样:1 <!--组件生成的包裹层--> 2 <div id="wrapper" > 3 <!--组件格式化后的样式--> 4 <style> 5 #wrapper { ......} 6 </style> 7 8 <!--组件真实的dom结构--> 9 <div></div>10 <div>如果这里我们使用shadow dom技术的话,整个结构会变成这样:1 <div id="wrapper">2 #shadow-root3 <style></style>4 <div>5 </div>6 <div>组件自动创建的dom包裹层,里面神马都没有了,因为事件代理是进不去的,所以开启shadow dom方式的组件需要将事件绑定至shadow节点当然,并不是所有浏览器都支持shadow dom技术,当此之时,也不是所有的shadow dom都合适;所以UI基类需要做一个开关,最大限度的避免生产风险,而又能引入新的技术1 //与模板对应的css文件,默认不存在,需要各个组件复写 2 this.uiStyle = null; 3 4 //保存样式格式化结束的字符串 5 // this.formateStyle = null; 6 7 //保存shadow dom的引用,用于事件代理 8 this.shadowDom = null; 9 this.shadowStyle = null;10 this.shadowRoot = null;11 12 //框架统一开关,是否开启shadow dom13 this.openShadowDom = true;14 15 // this.openShadowDom = false;16 17 //不支持创建接口便关闭,也许有其它因素导致,这个后期已接口放出18 if (!this.wrapper[0].createShadowRoot) {19 this.openShadowDom = false;20 }基类会多出几个属性处理,shadow逻辑,然后在创建UI dom节点时候需要进行特殊处理1 createRoot: function (html) { 2 3 this.$el = $('<div class="view" style="display: none; " id="' + this.id + '"></div>'); 4 var style = this.getInlineStyle(); 5 6 //如果存在shadow dom接口,并且框架开启了shadow dom 7 if (this.openShadowDom) { 8 //在框架创建的子元素层面创建沙箱 9 this.shadowRoot = $(this.$el[0].createShadowRoot());10 11 this.shadowDom = $('<div class="js_shadow_root">' + html + '</div>');12 this.shadowStyle = $(style);13 14 //开启shadow dom情况下,组件需要被包裹起来15 this.shadowRoot.append(this.shadowStyle);16 this.shadowRoot.append(this.shadowDom);17 18 } else {19 20 this.$el.html(style + html);21 }22 },www.179s.com防采集请勿采集本网。

符合條件的td 不只一個?

迴圈卻用"="賦值,那不就只有最後的值會被賦予

var element = document.body; // element = <body></body> element.classList // DOMTokenList(2) ["layout-center", "has-menu", value: "layo

光看你的代碼無法了解你的需求阿收获园豆:5

class="div">this is a div which is show</div> 你设置isShow为true则显示,设置为false则隐藏 你把jq的代码用到angularjs有用才是特殊呢 用原生js onmouseove

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

您好,我需要的字段的确会只有一个。

#id")表达式,或者是一个样式表达式(".class"),或者标签的属性表达式("div[id=id]")等,只要可以用jqurey通过这个表达式获取到dom对象,这个表达式怎么

所以,主要需求就是从 tr 这个dom对象里面解析出来就可以了。

dom元素添加样式。2、removeClass:删除指定dom元素的样式。3、toggleClass:如果存在(不存在),就删除(添加)一个样式。4、hasClass:判断样式是否存在。 原生 JS 代码如下

这个tr是一行表格数据,我是无法进行什么更改了。

AJAX、对象节点的操作,对面向对象的理解要熟练,然后对什么this指针要清楚,熟练的操作DOM节点!只有这样才能去学JQ,在学JQ的时候,将JQ完成的东西,使用原生的JS做出来

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@练涛:

好的,兩個問題

  1. 只有一個td 會有data-field 屬性?
  2. 你要的是純JS 還是jQuery 的方案?

通过dom对象的id进行判断举例:var a = document.getElementById('dom对象的id');//通过getelementbyid方法获取dom节点 if(a){//如果a非null,则表示

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@RosonJ: 所有的td都有 data-field。js,jq都行。

RHTML, JavaScript, Smarty, Mason, Node.js, XBL, Tcl, HTML, HTML5, TemplateToolkit, XUL, Django, Perl, Ruby, Python3. 2、jQuery 功能:jQ函数提示 简介:快捷输入jQ函数,是偷

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@练涛:

所有td 都有data-field ,那你如何知道哪個是你要的?

DOM是文档对象模型 jquery对象也就是javascript的对象,包括DOM对象,BOM 对象等(JS中,一切都是对象) 你问DOB和JQ有什么不同,它们不是同级的关系,怎么比较呢? 应该是

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@RosonJ:

恩恩而BootstrapJS有些类似JQ常用来操作dom等功能而不用JQ原因我想主要是angula 并且angularJS也是有JQ插件的但是人选择用bootstrap恩……我一般用原生JS

<td data-field='a'></td>

是干大事的! 恩恩 而BootstrapJS 有些类似JQ 常用来操作dom等功能 而不用JQ 原因我 并且angularJS也是有JQ插件的 但是更多人选择用bootstrap 恩……我一般用原生JS

<td data-field='b'></td>

<td data-field='c'></td>假设我需要的是 =b的。

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@练涛:$('td[data-field="b"]').text();你試試

============================================

<div><iframe src=""></iframe></div> 更改iframe的dom对象的src属性就可以了~

@RosonJ:

恩恩而BootstrapJS有些类似JQ常用来操作dom等功能而不用JQ原因我想主要是angula 并且angularJS也是有JQ插件的但是人选择用bootstrap恩……我一般用原生JS

服了,就很神奇,我写的就报错。复制你的改了就行了。。多谢

tr.children('td[data-field="bmjlSp"]').text();

不学js怎么能学jq?jq是js的高级框架,没有js基础,没有dom基础,你基本上不可能看懂jq;你的问题不是在两者中挑选一个,而是先学习哪一个,js基础没有打牢无法学习jq,学完js基础之后必然接触框架,而jq是最流行的js框架,所以任何一个学习js(不提业余的饿)的都不可能跳过jq;但愿能帮助你内容来自www.179s.com请勿采集。

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《jq js dom》转载自cnblogs,版权归原作者所有,若侵权请联系:E-MAIL:513175919@qq.com
违法违规信息请立即联系本网可获得现金奖励,TEL:1-8-2-1-0-2-3-3-3-8-1(电话仅供违法违规信息举报,侵权类信息请EMAIL。)

www.179s.com false 互联网 http://www.179s.com/jsblogcnk/po/pohvhd.html report 8477 符合條件的td 不只一個?迴圈卻用"="賦值,那不就只有最後的值會被賦予光看你的代碼無法了解你的需求阿收获园豆:5============================================您好,我需要的字段的确会只有一个。所以,主要需求就是从 tr 这个dom对象里面解析出来就可以了。这个tr是一行表格数据,我是无法进行什么更改了。============================================@练涛:好的,兩個

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生