我有以下div,分为三层。我需要获取被点击元素的文本,例如他们单击“123”我将能够记录它。
<div class="Div1st">
<div class="Di2ndv">
<div class="Div3rd">123</div>
<div class="Div3rd">abc</div>
</div>
<div class="Div2nd">
<div class="Div3rd">def</div>
<div class="Div3rd">456</div>
</div>
</div>
“类名”仅用于清楚地显示div的层次结构(层)
我尝试过以下代码,但它只适用于第二个Div。如果我像第3个div那样更深入,它就没有显示任何东西。
$(".Div1st > div").click(function (e) {
alert($(this).find('div').text());
});
答案 0 :(得分:2)
使用时:
$(".1stDiv > div")
jQuery只获取.1stDiv。的子元素,这将是2ndDiv。要获得所有div,您可以使用:
$(".1stDiv div")
我当然不建议使用$(“。1stDiv div”)。相反,您应该给出要单击一个类的div元素,并使用以下内容:
$(".clickableDiv", ".1stDiv")
更新:我建议这样:$(“。clickableDiv”,“#1stDiv”)。这将为您提供更好的性能,因为jQuery中的ID提供了比类更好的性能(它们本身使用document.GetElementById)。鉴于'#1stDiv'上下文元素只会在该div中进行jQuery搜索。这将带来良好的表现。
答案 1 :(得分:0)
<div class="1stDiv ">
<div class="2ndDiv ">
<div class="3rdDiv ">123</div>
<div class="3rdDiv ">abc</div>
</div>
<div class="2ndDiv ">
<div class="3rdDiv ">def</div>
<div class="3rdDiv ">456</div>
</div>
</div>
然后
$("div").click(function (e) {
alert($(this).text());
});
答案 2 :(得分:0)
您可以使用target
:
$(".1stDiv > div").click(function (e) {
alert(e.target.innerHTML);
});