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不应出现在同一页面上的任何位置。

否则,您应该将其设为 a class,在这种情况下,您可以使用$("#class .cost");

如果您仍要使用 ID 本身,则只需使用$("#cost").

于 2013-02-27T09:23:50.400 回答
1

您可以直接选择它,因为它有一个标识符:

$('#cost')
于 2013-02-27T09:23:52.967 回答
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 回答
0

正如您已id分配给目标一样:

$("#cost")

还有这些:

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

也是这样:

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