4

私の位置からここで 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

4 に答える 4

6

参照を使用$(this)して現在の位置を取得します..parents('td')移動するには<td>..next()<td>の位置findを取得し、ラベルを取得するには、これを試してください

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

ただし、ラベルに id があるため...セレクターとして直接使用すると、パフォーマンスが向上し、高速になります..

 $(".text").on("keypress", function (event) {
   $('#z').text();  // $('label.date').text();
});
于 2013-03-12T05:18:14.003 に答える
2

を使用してテキストclosest()の親に到達し、次に使用して次の td に到達し、特定のクラスのラベルを付けることができます。おそらく構造が繰り返されており、複数の要素で同じものを使用することは禁止されているため、ラベルで使用してください。繰り返し構造がない場合は、すぐに id を使用してください。tdnext()find()idclass

ライブデモ

最初の 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");
});

Liveon可能であれば非推奨の使用です。

于 2013-03-12T05:18:06.700 に答える
1
   $(".text").live("keypress", function (event) {
             $("label#z").text(/*your text*/)
        });
于 2013-03-12T05:18:54.573 に答える
1

ID / クラスを使用することで、識別とオブジェクト化をより迅速に行うことができます

ID プロパティを直接使用します (「z」は一意の ID であると見なします)。

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

z が重複している場合は、クラスを使用することをお勧めします

$('label.date').text("your text")
于 2013-03-12T05:20:10.680 に答える