1

如果我可以使用 a 识别此元素,我知道如何完成此操作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. 我希望这有帮助!

4

3 回答 3

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
}
于 2013-01-27T01:02:37.683 回答
3

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

$(".class", this)

这是向( ) 函数context提供参数的示例jQuery$

例如(此处为 jsfiddle),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”。

于 2013-01-27T01:06:41.900 回答
1

Jquery 只是 JavaScript 之上的一层。

只需使用原始 javascript 即可获得所需的内容。

var childOfThis = this.querySelector('.myClass');
于 2013-01-27T01:11:01.890 回答