Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择具有附加类的类_Jquery - Fatal编程技术网

Jquery 选择具有附加类的类

Jquery 选择具有附加类的类,jquery,Jquery,不工作。更改为: js $(".m1").click(function(){ var a = $(this).attr("class").split(' ')[1]; $(".sw").hasClass(a).slideDown("slow"); }); jqueryhasClass返回布尔值 虽然在HTML方面有点不同,但我会这样做: JSFiddle: 试试这个: $( document ).ready(function() { $(".m1").clic

不工作。

更改为:

js

$(".m1").click(function(){
    var a = $(this).attr("class").split(' ')[1];
    $(".sw").hasClass(a).slideDown("slow");
});
jquery
hasClass
返回布尔值


虽然在HTML方面有点不同,但我会这样做:

JSFiddle:

试试这个:

  $( document ).ready(function() {

    $(".m1").click(function(){
        console.log("hi")
        var targetClass = $(this).data("target-class")
        var target = $("."+targetClass)
        target.text("Selected")
    });

  });

虽然您已经接受了答案,但我认为我应该提供另一种方法:

$(document).ready(function () {
    $(".m1").click(function () {
        var a = $(this).attr("class").split(' ')[1];
        if ($(".sw").hasClass(a)) {
            alert(".sw." + a);
            $(".sw" + a).slideDown("slow");
        }
    });
});

参考资料:

  • JavaScript:
  • jQuery:

应该可以工作,除非在创建DOM之前绑定了单击。是您的
$(“.m1”)。在
$(文档)中单击()
。准备好(函数{})
?div是否与页面加载一起加载?dirty way
$(.sw.+a).slideDown(“slow”)类返回boolean@marathonman杰出的为什么是肮脏的方式?请把这个作为答案。@marathonman我也不认为这是肮脏的@bonaca:获取
属性字符串,拆分它并使用第n个元素是不安全的,因为顺序可能会改变。如果将
hasClass(),因为可能会更改订单
。什么顺序?上课?如何更改?在这种情况下,
sw contact
sw about
都是滑动的。没关系,但是
$(.sw.+a)。滑动向下(“慢”)就足够了。如果……
在这种情况下,
sw contact
sw about
都是滑动的,则无需使用
。您只需要class
.sw
<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")
    });

  });
$(document).ready(function () {
    $(".m1").click(function () {
        var a = $(this).attr("class").split(' ')[1];
        if ($(".sw").hasClass(a)) {
            alert(".sw." + a);
            $(".sw" + a).slideDown("slow");
        }
    });
});
// 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);
});