如果我可以使用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
。我希望有所帮助!
答案 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)
提供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');