用JQuery判断一个元素的display属性是不是none怎么写?

老实说,当我第一次开始使用 jQuery 时,我对 .css() 和 .prop() 之间的区别感到困惑。
当时我需要判断一个div元素是否被隐藏。
当时我只是使用 .css('display') === 'none' 但发现有时会出错。

有趣的是,.css() 返回一个字符串,因此“none”比较不是问题。
但后来我发现,如果这个div的display属性设置为“none”,比如“none !important”,这个判断就会爆炸。
由于“none !important”是一个包含空格的字符串,它肯定不等于你直接写的“none”。
我转念一想:这是不是一个陷阱?
粗略地说,.css()更适合获取样式字符串。
如果要定义布尔状态,例如禁用或选中,使用 .prop() 或 .attr() 更可靠。
例如,要检查复选框是否被选中,只需使用 $(&3 9 ;input[type=checkbox]&3 9 ;).prop(&3 9 ;checked&3 9 ;)。
它返回一个布尔值 true 或 false,这是清晰易懂的。

然后我还遇到了另一个陷阱。
有一个输入元素,其类型属性为“隐藏”。
我想使用 .css('type') === 'hidden' 进行评估。
事实证明 .css() 返回“隐藏”,但使用 .prop('type') 返回未定义。
查看文档后发现 type 是原生 DOM 元素属性,而不是 CSS 样式,所以 .css() 可以获取,但 .prop() 不能获取。

我自己没有运行过这个,但我记得在 jQuery 1 .6 左右,官方更明确地推荐使用 .prop() 来获取本机 DOM 属性。
因此,现在编写代码时,如果是布尔状态或原生 DOM 属性,请优先使用 .prop() 并使用 .css() 进行样式行。
我记得数据是关于 X 的,但我建议你查看最新版本 jQuery 的文档。

jQuery怎么判断某个元素是否存在

通过页面元素判断jQuery的关键:仅当长度大于0时才有效。

项目:电子商务网站用户登录页面 时间:2 02 0年 数字:访问时间缩短了 0.3 秒。

JQUERY 判断如果子元素没有含有某标签(如UL)

说实话,我以前在论坛上见过这个,挺有趣的。
你说使用长度来确定子元素确实非常简单。
让我为您整理一下。

创建一个新文件并将其命名为 test.txt。
打开文本编辑器并输入以下代码:

<头> <title>子元素判断</title> [xss_clean][xss_clean] </头> <正文>
指定子标签

另一个标签

未指定标签


<脚本> $(文档).ready(函数() { // 获取第一个div的子元素 var div1 Children = $('div1 ').children(); // 判断子元素的长度 if (div1 Children.length > 0) { console.log('有指定的子元素'); } 否则{ console.log('未指定子元素'); } //同样操作第二个div var div2 Children = $('div2 ').children(); if (div2 Children.length > 0) { console.log('div2 有子元素'); } 否则{ console.log('div2 没有子元素'); } }); </脚本> </正文> </>
在本地打开此代码并使用 Chrome 的控制台查看一下。
第一个 div 有 子元素,因此将输出“已指定子元素”。
第二个div只有

,但并不是你说的“指定标签”,所以按照这个逻辑,就会输出“没有指定子元素”。

有趣的是,您提到的“指定标签”实际上并没有指定它是什么。
如果引用,那么第一个div将输出“yes”,第二个没有的div将输出“none”。
如果它引用其他内容,则必须更改代码中的比较元素。

作为一个有着十年论坛经验的“老手”,我告诉大家,这种用长度来确定子元素的方法在jQuery中确实很常见。
但有一个小陷阱需要注意:如果有隐藏的子元素,长度可能不会被计算在内。
但你的情况很简单,应该足够了。

我记得在jQuery 3 .x时代数据是这样使用的,但是现在新版本可能有点不同。
我个人没有运行过这个的最新版本,所以我建议你检查一下。