在jquery中获取被点击元素的文本

时间:2014-02-20 21:31:54

标签: javascript jquery

我有以下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());
    });

3 个答案:

答案 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);
});