1

我有这样的代码

<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 变量中获取 div hidennote 类的值。我像这样尝试 Jquery。

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

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

    });

但无法获得价值。我怎样才能做到这一点?

4

2 回答 2

2

<div>将元素放在<p>DOM 中的a 内是不可能的,因为开始<div>标签会自动关闭<p>元素。

寻找允许的包含关系的权威位置是 HTML 规范。请参阅此处的 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()

于 2013-03-13T13:35:23.440 回答
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 中已弃用。

于 2013-03-13T13:32:11.530 回答