<div class='m1 about'>About</div>
<div class='m1 contact'>Contact</div>
<div class="sw about"></div>
<div class='sw contact'></div>
我需要:
如果点击m1 about
,则会选择sw about
如果点击m1 contact
,则会选择sw contact
我的尝试
$(".m1").click(function(){
var a = $(this).attr("class").split(' ')[1];
$(".sw").hasClass(a).slideDown("slow");
});
不能工作。
答案 0 :(得分:1)
更改为:
<强> JS 强>
$(".m1").click(function(){
var a = $(this).attr("class").split(' ')[1];
if($(".sw").hasClass(a))
$(".sw").slideDown("slow");
});
jquery hasClass
返回bool。
答案 1 :(得分:1)
虽然HTML方面略有不同,但我会这样做:
<div class='m1' data-target-class='about'>About</div>
<div class='m1' data-target-class='contact'>Contact</div>
<div class="sw about"></div>
<div class='sw contact'></div>
$( document ).ready(function() {
$(".m1").click(function(){
console.log("hi")
var targetClass = $(this).data("target-class")
var target = $("."+targetClass)
target.text("Selected")
});
});
答案 2 :(得分:1)
的jsfiddle:
试试这个:
$(document).ready(function () {
$(".m1").click(function () {
var a = $(this).attr("class").split(' ')[1];
if ($(".sw").hasClass(a)) {
alert(".sw." + a);
$(".sw" + a).slideDown("slow");
}
});
});
答案 3 :(得分:0)
虽然您已经接受了答案,但我认为我会提供另一种方法:
// bind the click event-handler:
$('.m1').click(function(){
// create a string starting with '.', and then join the class-names (from
// the classList) together with '.', replacing the 'm1' class-name with 'sw':
$('.' + [].join.call(this.classList,'.').replace('m1','sw'))
// toggling the display of the found element(s) with a slide down/up:
.slideToggle(300);
});
参考文献: