如何在jQuery中选择下一个标签?

时间:2013-03-12 05:15:49

标签: jquery

如何从我的位置选择class =“date”和id =“z”的标签?

<td style="width:300px;height:40px;" id="pricePanel">
    <div id="class">
        <label class="priceNumber" id="label">test</label>
        <div class="no" hidden="hidden">
            <input type="text" id='priceNumber' class="text" style="text-align:center;" onkeypress="if(event.keyCode==13)" value='@item.Cost.ToString()' />
        </div>
    <div>
</td>
<td id="x">
    <label class="date" id="z">@date</label>
</td>

我的位置在我的jQuery代码中的文本框块中:

$(".text").live("keypress", function (event) {
        //Here I want to change the text of the label with class="date" and id="z"
    });

注意:在主代码中我有一个循环,不幸的是有一些标签具有相同的类和id,因此我想在文本框之后选择我已经更改其文本的标签。

4 个答案:

答案 0 :(得分:4)

使用$(this)引用获取当前位置.. parents('td')移至<td> .. next()以获取下一个<td>和{{1得到标签 试试这个

find

HOWEVER ,因为你在标签中有id ...直接使用它作为选择器会更好地表现性能和更快......

 $("div.no").on("keypress",".text", function (event) {
   $(this).parents('td').next().find('#z').text();
});

答案 1 :(得分:2)

您可以使用closest()与文本的父td联系,然后使用next()与给定的类一起到达下一个td和find()标签。您可能有重复的结构并使用相同的id,但禁止使用多个元素,因此请使用带有标签的class。如果你没有 重复结构然后直接使用id。

<强> Live Demo

你也没有关闭第一个td中的第一个div。

HTML

<table>
    <tr>
        <td style="width:300px;height:40px;" id="pricePanel">
            <div id="class">
                <label class="priceNumber" id="label">test</label>
                <div class="no">
                    <input type="text" id='priceNumber' class="text" style="text-align:center;"
                    onkeypress="if(event.keyCode==13)" value='@item.Cost.ToString()' />
                </div>
            </div>
        </td>
        <td id="x">
            <label class="date" id="z">@date</label>
        </td>
    </tr>
</table>

的Javascript

$(".text").live("keypress", function (event) {
    $(this).closest('td').next('td').find('.date').text("your text");
});

如果你没有重复阻止并且有单身,那么直接使用id。

$(".text").live("keypress", function (event) {
    $('#z').text("your text");
});
如果可能的话,

Live已弃用on

答案 2 :(得分:1)

   $(".text").live("keypress", function (event) {
             $("label#z").text(/*your text*/)
        });

答案 3 :(得分:1)

使用ID / class是识别和对象的更快方法

直接使用ID属性(考虑“z”是唯一ID)

$('#z').text("your text")

如果z重复,那么最好使用类

$('label.date').text("your text")