2013-03-13 60 views
1

我有這樣的代碼獲取股利值jQuery中

<p class="shownote"> 
Text value 
<a href="#" class="show"> 
textvalues</a> 
<input class="editnotesbox" style="display:none"></input> 
<a href="#" class="editnote">Edit</a> 
<a href="#" class="deletenote">Delete</a> 
<div class="hidennote" style="display: none;"> 
Text value 
</div> 
</p> 

,我想在jQuery的variable.I股利hidennote類值嘗試jQuery的這個樣子。

$('.show').live('click', function (event) { 

     $(this).parent('.shownote').find('.editnotesbox').show(); 
     var getnote = $(this).closest('.hidennote').text; 
     $('.editnotesbox').val(getnote); 
     $(this).hide(); 

    }); 

但無法獲得該值。如何實現此目的?

回答

2

不可能將<div>元素放置在DOM中的<p>中,因爲<div>標籤將自動關閉<p>元素。

尋找允許的包含關係的權威地方是HTML規範。請參閱HTML內容模型中的here。它指定哪些元素是塊元素,哪些是內聯的。

因此,與<span>替換div和嘗試:Sample fiddle

$(".shownote").on('click', '.show', function (event) { 
    var shownote = $(this).parent(); 
    shownote.find('.editnotesbox').show(); 
    var getnote = shownote.find('.hidennote').text(); 
    $('.editnotesbox').val(getnote); 
    $(this).hide(); 
}); 

也避免.live()這是不贊成的jQuery 1.9,使用.on()

+0

沒有獲得值.. – Binoop 2013-03-13 14:08:58

+0

控制檯中的任何錯誤..? – Anujith 2013-03-13 14:10:40

+0

沒有錯誤顯示..但我把戒備(getnote),它沒有顯示任何值在getnote – Binoop 2013-03-13 14:17:31

1
$('div.hidennote').text() 

它當然會返回div的文本,因爲div沒有值。

基於你更新:

$('.show').live('click', function (event) { 
    $shownote = $(this).parent(); 
    $shownote.find('.editnotesbox').show(); 
    var getnote = $shownote.find('.hidennote').text(); 
    $('.editnotesbox').val(getnote); 
    $(this).hide(); 
}); 

要知道,live在1.9刪除了棄用1.7。

+0

我試過,但得到一個腳本錯誤.. DIV不定義 – Binoop 2013-03-13 13:38:42

+0

@阿倫,我不知道你是如何得到那個錯誤的。等等,你在兩個字符串之間寫了選擇器嗎?它應該是''div.hidennote''而不是'div.hidennote'。 – gdoron 2013-03-13 13:40:25

+0

k.will試試..... – Binoop 2013-03-13 14:10:16