jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么在jquery中使用样式TD会使标记疯狂?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为表中的所有表格单元格添加一个简单的边框.

重要的是我的标记对于我工作的其他一些功能来说仍然很简单.

比方说我喜欢这样的风格:

$('td').css('border','1px solid #000');

最终结果如下:

类也不适合我正在尝试做的事情.为什么我的细胞以这种荒谬的方式被格式化?

解决方法

这就是浏览器处理速记CSS属性的方式;某些浏览器可能与内部表示不同地实现人类可读的表示,但实际上,

border: 1px solid #000

是简写

border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #000;
border-right-color: #000;
border-bottom-color: #000;
border-left-color: #000;

有许多可能的#000表示.

我在Chrome和Safari(两个WebKit浏览器)中进行了测试,并且直接在DOM中设置该属性(element.style.border =’1px solid#000′)就是这样的结果.这是WebKit的行为,而不是jQuery.

此外,这是一个很好的例子,强调DOM与标记不同,应该区别对待.即使在designMode / contentEditable场景中(这是唯一真正合理使用直接样式而不是CSS类),只是抢夺元素的innerHTML表示是一大堆潜在的风险.你会在IE的旧版本中看到其他的表现形式,其DOM的“标记”表示完全是疯了.看到像这样的东西并不罕见:

<div class="foo">...</div>

成为:

<DIV CLASS="foo" _JQUERY12903579="qwertyuiop" HASLAYOUT=TRUE etc etc etc>...</DIV>

就像DOM和标记不是同一个东西一样,重要的是要意识到属性属性不是同一个东西.最终,jQuery.css方法是通过为element.style的属性赋值来实现的(例如,collection.css({Border:’1px solid#000′})大致相当于collection.each(function(){this.style .border =’1px solid#000′});而collection.attr(‘style’,’border:1px solid#000′)相当于collection.each(function(){this.setAttribute(‘style’,’ border:1px solid#000′);}).通过设置属性而不是属性,您正在做的事情就像追溯编辑HTML标记一样.如果您还设置了冲突的属性,这可能会导致不可预测的结果.

另请注意,通过使用attr(‘style’,…),您可能会覆盖所有元素的内联样式.

大佬总结

以上是大佬教程为你收集整理的为什么在jquery中使用样式TD会使标记疯狂?全部内容,希望文章能够帮你解决为什么在jquery中使用样式TD会使标记疯狂?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。