找到具有特定类的“this”表示的元素的子元素

时间:2013-01-27 01:01:34

标签: javascript jquery this

如果我可以使用selector

识别此元素,我知道如何完成此操作
$("selector.class")

但是如果我的选择器是关键字this怎么办?显然$(this".class")无法正常工作,我也不想使用$(this).children(".class"),因为我需要使用.html()提取元素的HTML,而我知道在所选元素中只有一个这个类的元素(我编写HTML),JQuery没有,并假设children()在使用时返回多个元素阶级(至少我认为这是什么,因为

$(this).children(".class").html()

返回undefined)。

我还能采取其他方式吗?

请随时要求澄清,我理解这似乎不太清楚。

编辑:有些人要求澄清,所以在这里。让我重新解释一下这个问题:通常,当我要求JQuery给我一些元素,并给它一个类作为选择器时,它假设我将返回多个元素,因此$(".selector").html()不起作用,因为你无法获得几个元素的HTML(至少这是我的理论)。相反,我希望它能够认识到,在这种情况下,我只得到1个元素,并且对待就是这样。我的限制是我的选择器的一部分是this。我希望有所帮助!

3 个答案:

答案 0 :(得分:5)

我不清楚你问的问题是什么,所以这里有几个不同的选择:

要搜索与所需选择器匹配的任何从属标记(在以this为根的DOM树中):

$(this).find(".myClass");

或者,如果您只是想查看this元素是否具有特定的类名,您可以使用:

if ($(this).hasClass("myClass")) {
    // this element has the desired class
}

或者,如果选择器比一个类更复杂,你可以像这样使用.is()

if ($(this).is("selector")) {
    // this element matches desired selector
}

答案 1 :(得分:3)

真的this不是选择器,但我认为你可以这样做:

$(".class", this)

这是向the jQuery ($) function

提供context参数的示例

例如(jsfiddle here), HTML:

<div id="dis">hello
    <div class="cls">
        hi</div></div>
<div class="cls">
    goodbye</div>

jQuery的:

$(function () {
    $('#dis').click(function () {
        alert(
            $('.cls', this).html());
    });
});
单击“dis”div时,

会发出“hi”警告。

答案 2 :(得分:1)

Jquery只是JavaScript之上的一层。

只需使用原始javascript即可获得您想要的内容。

var childOfThis = this.querySelector('.myClass');