简体   繁体   English

当所有div具有相同的类时,如何检索单个文本值

[英]How do I retrieve individual text values when all divs have same class

I have a block of research site addresses with hyperlinks allowing users to email the research sites directly. 我有一个带有超链接的研究站点地址,允许用户直接通过电子邮件发送研究站点。 Ultimately, I want some sort of jQuery function that returns the street address above whatever email link the user clicked. 最终,我需要某种jQuery函数,以返回用户单击的任何电子邮件链接上方的街道地址。

Here is the function I'm working with, with the HTML shown below. 这是我正在使用的功能,具有如下所示的HTML。 Every time I click on 'Email this Site' it returns all of the addresses shown on the page. 每次我单击“通过电子邮件发送此站点”时,它将返回页面上显示的所有地址。 I would like it just to show the address of the site I'm choosing to email however. 我只想显示我选择通过电子邮件发送的站点的地址。

 $('.doctor-email').click(function(e){ var address = $('.doctor-address').text(); console.log(address); }) 
 <div class="doctor-address">740 South Lindy Street<br>J401<br>Burbank,&nbsp;CA&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=740+South+Limestone+Street%2c+Lexington%2c+KY+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> <div class="col-xs-10 col-sm-9"> <div class="row"> <div class="col-sm-6"> <div class="doctor-address">800 South West Street<br>J401<br>Lexington,&nbsp;KY&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=800+South+West+Street%2c+Chicago%2c+IL+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> </div> <div class="col-xs-10 col-sm-9"> <div class="row"> <div class="col-sm-6"> <div class="doctor-address">900 Delavan Street<br>J401<br>Buffalo,&nbsp;NY&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=900+Delavan+Street%2c+Chicago%2c+IL+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 

I am very new to javascript, so any and all feedback is welcome. 我对javascript非常陌生,因此欢迎您提供任何反馈。

Thanks! 谢谢! Brett 布雷特

Try this. 尝试这个。

$('.doctor-email').click(function(e){
    //go up to the contextual row, and then find the nested address
    var address = $(this).closest('.row').find('.doctor-address').text();
    console.log(address);
});

Just replace the selector with this and it should create a JQuery object referencing the item you have clicked. 只需将选择器替换this ,它就会创建一个引用您单击的项目的JQuery对象。

UPDATED: 更新:

 $('.doctor-email').click(function(e){ var address = $(this).parents(".row").find(".doctor-address").text(); console.log(address); }) 
 <div class="doctor-address">740 South Lindy Street<br>J401<br>Burbank,&nbsp;CA&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=740+South+Limestone+Street%2c+Lexington%2c+KY+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> <div class="col-xs-10 col-sm-9"> <div class="row"> <div class="col-sm-6"> <div class="doctor-address">800 South West Street<br>J401<br>Lexington,&nbsp;KY&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=800+South+West+Street%2c+Chicago%2c+IL+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> </div> <div class="col-xs-10 col-sm-9"> <div class="row"> <div class="col-sm-6"> <div class="doctor-address">900 Delavan Street<br>J401<br>Buffalo,&nbsp;NY&nbsp;40536</div> <div class="doctor-directions"> <a href="javascript: void(0);" onclick="javascript: ViewMap('https://maps.google.com/?daddr=900+Delavan+Street%2c+Chicago%2c+IL+40536');"> Get Directions </a> </div> </div> <div class="col-sm-6"> <p class="doctor-email"> <a href="javascript: ContactSite('5859')"> Email this site </a> </p> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 

To access individual address, you should go with id. 要访问单个地址,您应该输入id。

Other way is as Mike suggested from the current context use jQuery prev() function to get the text of address. 正如Mike从当前上下文中建议的那样,其他方法是使用jQuery prev()函数获取地址文本。

Refer: prev() 参考: prev()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM