JQuery selector and processing question

Using jQuery and the HTML below, someone can suggest which is the best (i.e. most efficient) way to get span.street_address_display from $ ("enter") , Thanks.

<tr>
<th class="address_name" scope="row">Work</th>
<td class="address_entry">
  <span class="street_address_display">123456 ABC Street</span> 
  <span class="city_display">Vancouver</span>,  
  <span class="state_province_display">British Columbia</span>  
  <span class="country_display">Canada</span>   
  <span class="post_code_display">V1A2B3</span> 
</td>
<td class="address_select"><input value="address_2" name="address_select" type="radio" /></td>
</tr>
+3
source share
5 answers

If you call it in a function c thisthat is bound to the input (otherwise you need to replace thisit with what captures the input), something like

$(this).parent().prev().children('span.street_address_display')

should take you to the span. In terms of efficiency, I would say that the biggest place you notice will be different from IE, or places that cannot be captured by a tag or class.

, , .parent(), , td, td, td, span street_address_display. , , . , .

+3
var $input = $('input');
var street_address_display = $input.closest('td').prev().find('span.street_address_display');

, ,

var street_address_display = $input.closest('tr').find('span.street_address_display');
+3

:

$(".street_address_display",$("input").parents("tr"));

, , , , , , this.

:

$(".street_address_display",$("input:first").parents("tr"))

$(".street_address_display",$(this).parents("tr"))
+2

, , "street_address_display", :

 $('.street_address_display').html();


 $('input').val();
+1

:

var $my_span = $('input[name="address_select"]').parent().prev().children().first()
+1

All Articles