我正在尝试执行一个相当简单的任务:获取一个元素的类名,并使用与类名匹配的id查找并切换另一个元素的可见性。类名和id都是由php生成的,它们是相同的。
<div class="button">
<a href="#" class="generatedName"></a>
</div>
<div id="generatedName">
<p>Content</p>
</div>jQuery
jQuery('.container').hide();
jQuery('.button a').click(function() {
jQuery('div#' + this.class).toggle();
});我还尝试获取生成的类,并使用变量代替this.class。
var button = jQuery('.button a').attr('class');我一点运气也没有。如能提供任何协助,将不胜感激。提前感谢!
发布于 2014-05-15 05:45:32
在javascript(dom元素)中,class属性是className,因此
jQuery('#' + this.className).toggle();发布于 2014-05-15 05:45:25
您需要使用.prop()或.attr()来获取类名:
jQuery('#' + $(this).attr('class')).toggle();但是,如果元素有两个或多个类,则代码将无法工作,最好应用data-* HTML5属性:
<div class="button">
<a href="#" data-target="generatedName"></a>
</div>然后可以使用.data()检索data-*属性:
jQuery('#' + $(this).data('target')).toggle();附带注意:id必须是唯一的,您可以只使用#而不是div#
小提琴演示
发布于 2014-05-15 05:53:22
这样做是可行的:
$('.button a').click(function() {
var $class = $(this).attr('class');
$('div#' + $class).toggle();
});演示
https://stackoverflow.com/questions/23670162
复制相似问题