2013-02-27 46 views
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> 

我有這個網站code.And我想這個jQuery代碼:如何在第二級選擇一個div?

$(".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 
     } 
    }); 

現在我要選擇#cost是在div#class.How我可以在顯着的地方選擇呢?

回答

1

要選擇它:

$('#class #cost') 

正如其他人所指出的那樣,$('#cost')應該是不夠的,因爲IDS應該是在頁面上獨一無二的。但是,如果您的腳本位於可以包含在多個頁面中的外部文件中,則此嵌套的#id選擇器允許在正確的頁面上正確定位此div。

+0

+1,你還可以說什麼? – George 2013-02-27 09:24:32

1

首先,如果您使用的是ID,它應該在整個頁面上是唯一的。 因此,#cost不應該出現在同一頁的任何地方。

否則,你應該讓一個class,在這種情況下,你可以使用$("#class .cost");

如果你仍然要使用的ID本身,你只需要使用$("#cost")

+0

是的,我所有的標籤都有相同的id,正是因爲這個,我想選擇當前文本框所在的#class中的標籤。如果我將id更改爲class,它將工作,但僅適用於第一個換句話說,我想選擇作爲我的按鈕的父級的父級的div#類。如何才能做到這一點? – 2013-02-27 09:44:38

+0

@HamidReza否,那麼你不應該使用ID,而應該使用'class' – KBN 2013-02-27 09:54:01

+0

@HamidReza無論它是什麼,ID應該是唯一的,不管你使用的是什麼元素。 – KBN 2013-02-27 09:54:35

1

可以直接選擇它,因爲它有一個標識符:

$('#cost') 
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! 
     } 
    }); 
0

您可以直接與ID訪問元素的ID是唯一的,如果你重複相同的id的HTML代碼,你可以使用prev獲得兄弟姐妹的標籤,不需要id。

alert($(this).prev('label').text()); 
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 
     } 
    }); 
0

你有id分配給目標如此:

$("#cost") 

這些:

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

這方式太:

$(this).parent().siblings('#cost') 
0

#cost是父div的前一個節點

.parent將高達父節點和.prev將選擇前一個節點

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

,並保持鏈接

$(this).hide().parent().prev().show(); 
相關問題