2015-07-13 22 views
1

HTML:如何通過Jquery獲得直接父項?

<span class="ui-spinner ui-widget ui-widget-content ui-corner-all"><input class="spinner1 ui-spinner-input" id="q1" name="value" value="1" min="1" aria-valuemin="1" aria-valuenow="2" autocomplete="off" role="spinbutton"><a class="ui-spinner-button ui-spinner-up ui-corner-tr ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-n">▲</span></span></a><a class="ui-spinner-button ui-spinner-down ui-corner-br ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-s">▼</span></span></a></span> 

的jQuery:

$('.ui-spinner-button').click(function() { 
    // 
}); 

我想詠歎調 - valuenow的ID和值

<input class="spinner1 ui-spinner-input" id="q1" name="value" value="1" min="1" aria-valuemin="1" aria-valuenow="2" autocomplete="off" role="spinbutton"> 

當我點擊.ui-spinner-button

我該怎麼做。我搜索了幾天,但沒有運氣。

+0

您可以使用.parent ()來獲取父項。 – nikhil

+0

'$(this).prev()。attr('aria-valuenow')或$(this).siblings('。spinner1')。attr('aria-valuenow')' – Jai

+0

使用'$(this)。分組( 'UI微調輸入 ')。ATTR(' 詠歎調-valuenow')' – Satpal

回答

2

你不需要parent在這裏,你需要的prev兄弟。要獲得以前的輸入使用siblings()選擇器。

參見下面的代碼註釋:

$('.ui-spinner-button').click(function() { 
 

 
    // Get the spinner input jquery object 
 
    var $input = $(this).siblings('.ui-spinner-input'); 
 

 

 
    // Get attribute values 
 
    var id = $input.attr('id'), 
 
    valueNow = $input.attr('aria-valuenow'); 
 
    alert(id + ' >>> ' + valueNow); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
<span class="ui-spinner ui-widget ui-widget-content ui-corner-all"> 
 
    <input class="spinner1 ui-spinner-input" id="q1" name="value" value="1" min="1" aria-valuemin="1" aria-valuenow="2" autocomplete="off" role="spinbutton"> 
 
<a class="ui-spinner-button ui-spinner-up ui-corner-tr ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-n">▲</span></span> 
 
</a><a class="ui-spinner-button ui-spinner-down ui-corner-br ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-s">▼</span></span></a> 
 
</span>

1

我不知道爲什麼你需要parentNode$.parent()。使用$(element).parent()獲取直接父級。你的情況:

$('.ui-spinner-button').click(function(){ 
    $(this).parent(); // gives you the immediate parent as a jQuery object. 
    $(this).attr("aria-valuenow"); // gives aria-valuenow. 
    $(this).attr("id"); // gives you the ID 
    this.id; // gives you the ID 
}); 
1

這是jQuery代碼爲我工作:

$('.ui-spinner-button').click(function() { 
    var elem = $(this).parent().find("input"); 
    alert("id: "+ elem.attr("id")+ ", aria-valuenow: "+ elem.attr("aria-valuenow"))); 
}); 

Here is a JSFiddle demo