jQuery选择器:
//left side
$('section.abstract label.gcsubheader')
//right side
$('fieldset.abstract label.formElems')
两者都返回:(类不同,但for="*"
其余相同)
<label for="design" class="displayHidden formElems">Design</label>
<label for="expertise" class="displayHidden formElems">Expertise</label>
<label for="skills" class="displayHidden formElems">Skills</label>
<label for="tools" class="displayHidden formElems">Tools</label>
<label for="projects" class="displayHidden formElems">Projects</label>
<label for="community" class="displayHidden formElems">Community</label>
<label for="interests" class="displayHidden formElems">Interests</label>
我想将类似于以下内容的内容附加到左侧选择器:
.find($('label[for="' + $(this).text().toLowerCase() + '"]'))
或者
var $this = $(this).text().toLowerCase(); //and use the $this in the concatenation:
labels for="design"
使用选择器来完成选择元素($('label[for="design"]'))
,但通过动态进行。这个想法是我第一次尝试重构,并且有很多元素,当我点击一个元素时,我想找到它自己,另一个共享它的label for
字符串。
我试过了:
$('section.abstract label.gcsubheader').click(function () {
var $this = $(this).text().toLowerCase();
//left element - hide
$('section.abstract label.gcsubheader')..find($('label[for="' + $this + '"]')).show();
//Right Side - show
$('fieldset.abstract label.formElems').find($('label[for="' + $this + '"]')).show();
}
和
$('fieldset.abstract label.formElems').find($('label[for="' + $(this).text().toLowerCase() + '"]')).show();
不知道我做错了什么。我是否必须允许另一层抽象来获取/定义元素的文本,或者我的语法错误,或者其他什么问题?我希望得到这个,所以我可以切换左右的 .hidden 类,提供非常健壮的代码重构,也许是这样的?:
$('label[for="*"]').click(function () {
// for each .toggleClass('hidden');
}
虽然不太确定如何编写*
or for each
,但我会到达那里。非常感谢您的帮助。