0
<div id="class" style="cursor: pointer">
    <label id="cost">@Html.DisplayFor(modelItem => item.Cost)</label>
    <div class="no" hidden="hidden">
        <input type="text" id='@item.PriceId' class="text" style="text-align:center;" onkeypress="if(event.keyCode==13)" value='@item.Cost.ToString()' />
    </div>
</div>

私はこのhtmlコードを持っていますそして私はこのjqueryコードが欲しいです:

    $(".text").live("keypress",function (event) {
        if (event.which == 13) {
            event.preventDefault();
            $.getJSON('/Price/AjaxPriceEdit', { id: $(this).attr("id"), cost: $(this).val() }, function (data) {
            });
            $(this).hide();
            //Here I want to show #cost
        }
    });

ここで、div#classにある#costを選択したいのですが、マークされた場所でどのように選択できますか?

4

8 に答える 8

1

それを選択するには:

$('#class #cost')

他の人が指摘したよう$('#cost')に、IDはページ上で一意であると想定されているため、十分なはずです。ただし、スクリプトが複数のページに含めることができる外部ファイルにある場合、この#idセレクターのネストにより、正しいページのこの div を正確にターゲットにすることができます。

于 2013-02-27T09:22:48.073 に答える
1

まず、ID を使用している場合は、ページ全体で一意である必要があります。したがって、#cost同じページのどこにも存在しないでください。

それ以外の場合は、 にする必要がありclassます。その場合、使用できます$("#class .cost");

ID 自体を引き続き使用する場合は、 を使用するだけ$("#cost")です。

于 2013-02-27T09:23:50.400 に答える
1

識別子があるため、直接選択できます。

$('#cost')
于 2013-02-27T09:23:52.967 に答える
0

ターゲットにid割り当てたように:

$("#cost")

そしてこれら:

$('#class #cost')
$('#class').children('#cost')
$('#class').find('#cost')

そしてこの方法も:

$(this).parent().siblings('#cost')
于 2013-02-27T09:36:21.133 に答える
0

#cost は親 div の前のノードです

.parent は親ノードまで、.prev は前のノードを選択します

$(this).hide();
$(this).parent().prev().show();

そして連鎖を続ける

$(this).hide().parent().prev().show();
于 2013-02-27T09:44:35.467 に答える
0
 $(".text").live("keypress",function (event) {
        if (event.which == 13) {
            event.preventDefault();
            $.getJSON('/Price/AjaxPriceEdit', { id: $(this).attr("id"), cost: $(this).val() }, function (data) {
            });
            $(this).hide();
            var cost = $('#class #cost').html();
            alert(cost); //This will display the actual cost value in an alert, do with it what you please!
        }
    });
于 2013-02-27T09:27:08.970 に答える
0

id が一意であるため、id を持つ要素に直接アクセスできます。同じ id を持つ html ブロッ​​クを繰り返している場合は、prevを使用して兄弟であり、id を必要としないラベルを取得できます。

alert($(this).prev('label').text());
于 2013-02-27T09:29:01.630 に答える
0

次のように直接選択できます。

$(".text").live("keypress",function (event) {
        if (event.which == 13) {
            event.preventDefault();
            $.getJSON('/Price/AjaxPriceEdit', { id: $(this).attr("id"), cost: $(this).val() }, function (data) {
            });
            $(this).hide();
           $('#cost').show(); // or whatever you want to do with it
        }
    });
于 2013-02-27T09:29:09.330 に答える