2013-03-13 5 views
1

У меня есть код, как этотПолучить Div значение в 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> 

, и я хочу, чтобы получить значение DIV hidennote класса в Jquery variable.I попробовать 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> элемент внутри <p> в DOM, так как открытие <div> тег автоматически закроет <p> элемент.

Авторитетное место для поиска разрешенных сдерживающих отношений - это спецификация HTML. См., here на моделях HTML-контента. Он определяет, какие элементы являются блочными элементами и которые являются встроенными.

Так замените DIV с <span> и попробовать: 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

+0

любые ошибки в консоли ..? – Anujith

+0

Нет ошибки, показывающей ... но я поставил предупреждение (getnote), он не показывал никаких значений в getnote – Binoop

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

Я попытался это, но получаю сообщение об ошибке сценария .. ДИВ не – Binoop

+0

@Arun, я понятия не имею, как вам удалось получить эту ошибку. подождите, вы пишете селектор между двумя строками? это должно быть '' div.hidennote'', а не 'div.hidennote'. – gdoron

+0

k.will попробуйте ..... – Binoop

Смежные вопросы