为了账号安全,请及时绑定邮箱和手机立即绑定

为什么var $strHTML = $("*:hidden").val()不对?

如题---

正在回答

4 回答

*是全部选择吧,获取的就是所有的,前边的定义是一个变量并非数组,所以不行


我自己想的,不一定对啊

0 回复 有任何疑惑可以回复我~
#1

biubiu昊

:hidden是用来选择集合元素中的隐藏元素的,*也是一个选择,并非集合,所以二者不能合用,这个应该是对的
2016-03-06 回复 有任何疑惑可以回复我~
#2

qq_不能說的秘密_0 提问者

:hidden 不是一个属性吗?前面貌似是个选择器, 我有试过"body:hidden"没有反应,因为body本身属性没有hidden,而"body :hidden"(加了个空格)就可以将body下的子元素带有hidden的元素选中,这里"body "不是body * 的意思吗?
2016-03-08 回复 有任何疑惑可以回复我~
#3

qq_不能說的秘密_0 提问者

希望继续帮我寻找正确答案,先给最佳回答,谢谢
2016-03-08 回复 有任何疑惑可以回复我~

按照我的理解,

$(":hidden")是选取所有不可见的元素 ,如果只想选取单个元素,那么就$("input:hidden");

$("body :hidden")的意思是选取body下的所有不可见的后代元素,而input为body的后代元素,因此可以获取到

$("body:hidden")的意思是选取不可见的body元素,这里并未给body加上诸如type="hidden" ,visibility="hidden"表达隐藏的属性,所以这样不加空格是错误的。

$("* :hidden")这样写肯定是错误的,*通配符的意思是获取页面的所有元素,而这里使用的是层次选择器,那到底是谁的后代元素呢?不清楚。给*加个限制的条件即可;

$("body *:hidden"):这个表明了在body下获取所有不可见元素。


希望能帮到你。

5 回复 有任何疑惑可以回复我~
#1

qq_不能說的秘密_0 提问者

感觉挺清晰地,尤其第四条。。。*的后辈元素确实不明确
2016-03-28 回复 有任何疑惑可以回复我~

body应该算是一个容器元素,:hidden是一个选择器的

0 回复 有任何疑惑可以回复我~

*是一种选择,它前面似乎需要一个容器名来”调用?“,:hidden的性质应当是与*是一样的都是用于选择具有某一特殊属性的元素,因此两者似乎不能一起用……

纯粹个人想法,大家互相交流吧~

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

为什么var $strHTML = $("*:hidden").val()不对?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信