Javascript 获取jquery中已单击元素的文本

Javascript 获取jquery中已单击元素的文本,javascript,jquery,Javascript,Jquery,我有以下几个div,它们被分为三个层。我需要得到点击元素的文本,比如他们点击了“123”,我将能够记录它 <div class="Div1st"> <div class="Di2ndv"> <div class="Div3rd">123</div> <div class="Div3rd">abc</div> </div> <di

我有以下几个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>
使用时:

$(".1stDiv > div")
jQuery只获取.1stDiv.的子元素,它将是第二个DDIV。要获取所有div,请使用:

$(".1stDiv div")
我当然不建议使用$(“.1stDiv”)。相反,您应该提供要单击类的div元素,并使用以下命令:

$(".clickableDiv", ".1stDiv")
更新:我建议:$(“.clickableDiv”,“#1stDiv”)。这将为您提供更好的性能,因为jQuery中的ID比类(它们本机使用document.GetElementById)提供更好的性能。给定“#1stDiv”上下文元素,该div中只有jQuery搜索。这将提供良好的性能。

您可以这样做吗

    <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>

您可以使用
target

$(".1stDiv > div").click(function (e) {
    alert(e.target.innerHTML);
});

或者,如果您只想针对第三级
元素,您可以这样做:
$(“.1stDiv>div>div”)
。还要注意,以数字开头的类名无效。谢谢!!!这解决了问题,我一直在和分钟现在…贾斯珀我尝试了,但它没有记录的文字,我needed@Jaeger您可能没有从
$(this.find('div').text()中删除
.find('div')
。这是必需的,因为在直接选择第三级div元素时,所选div没有子级。。。另外,不要期望从
$(this.find('div').text()
)获得任何类型的输出。您需要将值存储在变量中或对其进行处理。同样,根据您的建议,使用ID而不是类作为初始选择,ID不应按照规范以数字开头。如果要将处理程序绑定到
.3rdDiv
,你应该这样做。现在您正在将其绑定到
.2ndDiv
。请注意,类名不应以数字开头,根据标准.Jasper,它是无效的。。是的,我知道。但是我用这种方式清楚地显示了div的层。这个页面上所有无效的类名和ID都让我感到害怕:)Jasper。。很抱歉,我只是想确保您一眼就能理解代码目标不是解决方案,我以前尝试过使用它,但它的行为方式与我所希望的不同。即使你只是突出显示文本,它也会被记录下来。试着使用我在这里发布的代码,只突出显示123和abc。。它将向你展示我所知道的meant@Jaeger要么我不明白你想要什么,要么你做错了什么:是的,这是可能的,但我不喜欢给他们所有相同的课程。如果我有100个需要录制的div呢?这只会增加打字量,我不喜欢那样。。
    $("div").click(function (e) {
        alert($(this).text());
    });
$(".1stDiv > div").click(function (e) {
    alert(e.target.innerHTML);
});