我正在尝试编写一个jquery语句
以下是HTML代码:
<tr role="row" class="odd">
<td class="variant_title">2014 - CYZ51P/18</td>
<td class="">1</td>
<td>
<input name="price[114][1]" value="265700" class="form-control input_prices unmask" autocomplete="off" type="text">
<a data-year="2014" data-variant="CYZ51P/18" href="#" class="analyseItemChannel green">
</td>
</tr>
<tr role="row" class="even">
<td class="variant_title">2013 - NMR71E22/24</td>
<td class="">0</td>
<td>
<input name="price[111][1]" value="0" class="form-control input_prices unmask" autocomplete="off" type="text">
<a data-year="2013" data-variant="NMR71E22/24" href="#" class="analyseItemChannel green">
</td>
</tr>
所以,我正在寻找的是当用户点击(a href)时我需要获取输入附近的数据(a href)。
这是我的jquery,以及对我不起作用的内容:
$("a.analyseItemChannel").on('click', function (event)
{
event.preventDefault();
price = $('.input_prices', this).val();
console.log(price);
price = $(this).closest('.input_prices').val();
console.log(price);
});
任何建议, 谢谢,
答案 0 :(得分:2)
prev
:获取匹配元素集中每个元素的前一个兄弟。如果提供了选择器,则仅当它与该选择器匹配时才会检索前一个兄弟。
closest
:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
$("a.analyseItemChannel").on('click', function (event)
{
event.preventDefault();
var price = $(this).prev('.input_prices').val();
console.log(price);
});
答案 1 :(得分:2)
您需要使用jQuery中的prev()
函数来访问上一个兄弟:
$("a.analyseItemChannel").on('click', function(event) {
event.preventDefault();
price = $(this).prev('.input_prices').val();
console.log(price);
price = $(this).prev('.input_prices').val();
console.log(price);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<table>
<tr role="row" class="odd">
<td class="variant_title">2014 - CYZ51P/18</td>
<td class="">1</td>
<td>
<input name="price[114][1]" value="265700" class="form-control input_prices unmask" autocomplete="off" type="text">
<a data-year="2014" data-variant="CYZ51P/18" href="#" class="analyseItemChannel green">A</a>
</td>
</tr>
<tr role="row" class="even">
<td class="variant_title">2013 - NMR71E22/24</td>
<td class="">0</td>
<td>
<input name="price[111][1]" value="0" class="form-control input_prices unmask" autocomplete="off" type="text">
<a data-year="2013" data-variant="NMR71E22/24" href="#" class="analyseItemChannel green">A</a>
</td>
</tr>
</table>
请关闭</a>
代码。
答案 2 :(得分:0)
检查这是否是您想要的(首先导航到父母)
$("a.analyseItemChannel").on('click', function (event)
{
event.preventDefault();
price = $(this).prev().val();
console.log(price);
//price = $(this).closest('.input_prices').val();
//console.log(price);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<tr role="row" class="odd">
<td class="variant_title">2014 - CYZ51P/18</td>
<td class="">1</td>
<td>
<input name="price[114][1]" value="265700" class="form-control input_prices unmask" autocomplete="off" type="text" />
<a data-year="2014" data-variant="CYZ51P/18" href="#" class="analyseItemChannel green">link1</a>
</td>
</tr>
<tr role="row" class="even">
<td class="variant_title">2013 - NMR71E22/24</td>
<td class="">0</td>
<td>
<input name="price[111][1]" value="0" class="form-control input_prices unmask" autocomplete="off" type="text">
<a data-year="2013" data-variant="NMR71E22/24" href="#" class="analyseItemChannel green">link2</a>
</td>
</tr>
&#13;
答案 3 :(得分:0)
有很多方法可以做到这一点。
$("a.analyseItemChannel").on('click', function (event) {
event.preventDefault();
//using siblings()
var price = $(this).siblings('.input_prices').first().val();
console.log(price);
//using prev()
price = $(this).prev('.input_prices').val();
console.log(price);
});
答案 4 :(得分:0)
试试这个,
$(document).on('click','a.analyseItemChannel', function(event){
event.preventDefault();
var nextInput = $(this).next().filter('input');
var prevInput = $(this).prev().filter('input');
if(nextInput.length > 0){
var price = nextInput.val();
console.log(price);
}
if(prevInput.length > 0){
var price = prevInput.val();
console.log(price);
}
});