这看起来对JQuery来说应该是微不足道的,但是这个函数隐藏了整个表单...谁能给我指个路吗?
$('form')
.children()
.filter(function(){
return $(this).data('show', 'pro')
})
.show();
$('form')
.children()
.filter(function(){
return $(this).data('show', 'home')
})
.hide();
4条答案
按热度按时间qlckcl4x1#
您向
data
method传递了2个参数,从而设置了它,而不是检索旧值。使用这个代替:
您也可以缓存选择器以提高性能(或使用
end
)。mwkjh3gx2#
如果data-show值在HTML中或设置为每个对象的属性,则可以完全使用选择器来完成此操作:
作为解释:
form
显然选择表单元素>
选择表单对象的子对象[data-show="pro"]
仅选择具有名为data-show
的属性且该属性的值设置为"pro"
的子级.show()
对这些选定对象调用show方法如果你的data-show值是用
.data()
jquery方法设置的,那么前面的方法就不起作用了,那么你最好把state设置为类名,而不是在选择器中更容易使用的数据值。如果将这些值设置为类名而不是数据,则代码将如下所示:记住,你可以在一个对象上有多个类名,并且直接用于控制对象的呈现(CSS样式,可见性,格式等)的对象状态更好地表示为类名而不是data-xxx属性,因为它更容易在CSS或jQuery操作的选择器中使用。
lmyy7pcs3#
不太确定你想从代码中做什么。
要使用JQ访问“data-”,我用途:
其中,data-XXX是标签的属性。这适用于所有浏览器回到IE7,我见过。
7hiiyaii4#
如果使用多个单词,如
data-aliases="foo bar baz"
,并且多个单词中的一个必须匹配,则使用此选择器[data-aliases~=foo]
,用 alias 变量替换 foo