如何在jquery(或javascript)中选择邻居元素

如何在jquery(或javascript)中选择邻居元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有如下HTML代码: <tr id="15"> <td id="NV">1</td> <td class="hidden-mob"> <a href="page.php"><i id="c-voteup" class="fa fa-caret-up"></i></a> </td> <tr> <tr id="16">

我有如下HTML代码:

<tr id="15">
    <td id="NV">1</td>
    <td class="hidden-mob">
        <a href="page.php"><i id="c-voteup" class="fa fa-caret-up"></i></a>
    </td>
<tr>

<tr id="16">
    <td id="NV">1</td>
    <td class="hidden-mob">
        <a href="page.php"><i id="c-voteup" class="fa fa-caret-up"></i></a>
    </td>
<tr>

1.
1.
现在我想增加第一个
的值,我在其中单击它的
(邻居

例如:如果我单击
中的
,那么我想增加其
的值,如下所示:
2
。可能吗

这是我的尝试:我不能完全实现它,只是我对它的了解很零散

$("i").click(function(e) {}                            // when click on <i>

var value =  $("#NV").text().replace(/[^0-9]/g, '');   // getting current value

value++;                                              // increase its value

$("#NV").html(value);                                 // writing new value
$(“i”)。单击时单击(函数(e){}//
var value=$(“#NV”).text().replace(//[^0-9]/g',);//获取当前值
value++;//增加它的值
$(“#NV”).html(值);//写入新值
只是我的问题是选择,如何选择我在同一个
中单击的
$(“#NV”)

$("i").click(function (e) { // when click on <i>

    var $nv = $(this).closest('tr').find(".NV");
    var value = $nv.text().replace(/[^0-9]/g, ''); // getting current value

    value++; // increase its value

    $nv.html(value);

});
$(“i”)。单击(函数(e){//
var$nv=$(this.nexist('tr')。find('nv');
var value=$nv.text().replace(//[^0-9]/g',);//获取当前值
value++;//增加它的值
$nv.html(价值);
});
  • 请将所有
    #NV
    ID更改为class,因为ID在DOM中应该是唯一的
试试这个:

$("i").click(function (e) { // when click on <i>

    var $nv = $(this).closest('tr').find(".NV");
    var value = $nv.text().replace(/[^0-9]/g, ''); // getting current value

    value++; // increase its value

    $nv.html(value);

});
$(“i”)。单击(函数(e){//
var$nv=$(this.nexist('tr')。find('nv');
var value=$nv.text().replace(//[^0-9]/g',);//获取当前值
value++;//增加它的值
$nv.html(价值);
});
  • 请将所有
    #NV
    ID更改为class,因为ID在DOM中应该是唯一的
您可以使用
$(this).closest('td').prev()
来定位感兴趣的
td
。但是,您不能使用重复的ID

$('a > i').on('click', function(e) {
    //prevent default action
    e.preventDefault();
    //locate the TD with value   
    var valTD = $(this).closest('td').prev();
    //increment it's value
    valTD.text( +valTD.text() + 1 );
});
$('a>i')。在('click',函数(e){
//防止默认操作
e、 预防默认值();
//使用值查找TD
var valTD=$(this.nexist('td').prev();
//增加它的价值
valTD.text(+valTD.text()+1);
});

1.
1.
您可以使用
$(this).closest('td').prev()
来定位感兴趣的
td
。但是,您不能使用重复的ID

$('a > i').on('click', function(e) {
    //prevent default action
    e.preventDefault();
    //locate the TD with value   
    var valTD = $(this).closest('td').prev();
    //increment it's value
    valTD.text( +valTD.text() + 1 );
});
$('a>i')。在('click',函数(e){
//防止默认操作
e、 预防默认值();
//使用值查找TD
var valTD=$(this.nexist('td').prev();
//增加它的价值
valTD.text(+valTD.text()+1);
});

1.
1.

.sibling()在jQuery中。@Chrillewoodz谢谢,我读过,我觉得它对我的问题有用。@Chrillewoodz谢谢,我读过,我觉得它对我的问题有用。谢谢,只是jQuery-1.8.2.min.js支持
最近('tr')
?是的,它仍然只支持1.8.2
。最近的(选择器)[,context])
signature(仅!)从jQuery 1.7开始就被弃用,并在jQuery 1中删除。8@Sajad很高兴它有帮助!谢谢,jquery-1.8.2.min.js只支持
closest('tr')
?是的,它仍然只支持1.8.2
.closest(选择器[,上下文])
签名(仅限!)从jQuery1.7开始就已弃用,并在jQuery1中删除。8@Sajad很高兴它能帮上忙!你能告诉我为什么要用
作为表的元素吗?我什么时候应该用
?很高兴我能帮上忙;这是我的荣幸……通常最好明确地添加这些标记,而不是依赖浏览器来添加它们。T主要内容放在
tbody
中,任何页眉都放在
中,而任何页脚都放在
tfoot
中。你能告诉我为什么要用
作为表的元素吗?我什么时候应该用
呢?很高兴能帮上忙;这是我的荣幸……通常最好加上这些标签s,而不是依赖浏览器来添加。主要内容放在
t正文
中,任何页眉都放在
标题
中,而所有页脚都放在
t页脚
中。请参阅