我有一长串DOM元素,我正在抓取属性以保存到对象.
看起来过度使用DOM操作来反复使用jQuery选择器.
var a = $('input[name=a]:checked').val(),
b = $('input[name=b]')is(':checked'),
c = $('input[name=c]').val();
Run Code Online (Sandbox Code Playgroud)
我想可能有办法做某事var $form = $('#form');,然后使用$form.find('input[name=a]:checked')或$form.children('input[name=b]')或$form.filter('input[name=c]').但是这些例子都没有了.我相信因为我没有选择元素本身,所以选择它们的父元素不会阻止jQuery重复使用DOM.真的吗?
另一种选择可能是为这个(:/)专门为所有元素添加另一个类,但由于某种原因,这似乎很奇怪.这将会给我一个数组,但是,我以为我可以使用,防止反复遍历DOM?像这样的东西:
var $formElementArray = $('.the_elements_you_wanted');
Run Code Online (Sandbox Code Playgroud)
然后使用过滤器?
var a = $formElementArray.filter('input[name=a]:checked').val(),
b = $formElementArray.filter('input[name=b]')is(':checked'),
c = $formElementArray.filter('input[name=c]').val();`
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?这种事情有最好的做法吗?看起来有点蹩脚,我必须专门添加一个类以防止过多的DOM遍历,因为我正在操作的一些元素不会被组合在一起,否则,如果是这样的话,那么就行了起来. .
好的,这是我想要的输出:
.class-1, .class-2, .class-3 {
z-index: 1;
}
.class-1-et-cetera, .class-2-et-cetera, .class-3-et-cetera {
z-index: 5;
}
Run Code Online (Sandbox Code Playgroud)
我希望通过嵌套选择器并使用SASS来获得它,真的非常棒,&可以抓住父选择器.所以我一直在尝试这样的东西(SASS-syntax first):
.class-1, .class-2, .class-3
z-index: 1
&-et-cetera
z-index: 5
Run Code Online (Sandbox Code Playgroud)
SCSS语法:
.class-1, .class-2, .class-3 {
z-index: 1;
&-et-cetera {
z-index: 5;
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,这不起作用.我试着用后的文本搞乱&......之类的东西&#{"-et-cetera"},&#{-et-cetera},& + "-et-cetera"...你的想法.
认为它是可能的,但似乎无法找到它.有什么办法吗?