jQuery选择:动态属性jQuery选择ATTR( '为= “*”')
//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"]'))
,但通过动态执行。这个想法是,我第一次尝试重构,并且有很多元素,当我点击一个元素时,我想找到它自己,而另一个分享它的字符串。
我曾尝试:
$('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');
}
虽然不太清楚怎么写*
或for each
或者,但我会到达那里。非常感谢您的帮助。