jQuery $(this) on Clicked element or class 如何工作?

How does jQuery $(this) on Clicked element or class work?

我有一个简单的 html 片段。

<div class="group">
    <div class="A1_B1 symptom">
        <ul><li><a href="#" class="hit">Click Symptom</li></ul>
    </div>
    <div class="A2_B2 remedy">
        <ul><li><a href="#" class="hit">Click Remedy</li></ul>
    </div>
</div>

现在点击操作...

$(document).on("click", ".hit", function (ev) {
if($(this).parents(".symptom"))
    alert("Symptom Clicked");
if($(this).parents(".remedy"))
    alert("Remedy Clicked");
});

$(this) 应该只引用我点击的元素。为什么不满足if条件,两个alert语句都会alert?

按如下方式更改您的代码

$(document).on("click", ".hit", function (ev) {
if($(this).parents(".symptom").length>0)
    alert("Symptom Clicked");
if($(this).parents(".remedy").length>0)
    alert("Remedy Clicked");
});

https://jsfiddle.net/1mz8s73b/