在Jquery中获取Div Value

时间:2013-03-13 13:31:16

标签: jquery html xslt

我有这样的代码

<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();

    });

但无法获得价值。我能怎样实现这个目标?

2 个答案:

答案 0 :(得分:2)

无法在<div>内的<p>内放置<div>元素,因为开始<p>标记会自动关闭<span>元素。

查找允许的包含关系的权威位置是HTML规范。请参阅HTML内容模型中的here。它指定哪些元素是块元素,哪些元素是内联的。

请用$(".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(); }); 替换div并尝试:Sample fiddle

.live()

同时避免从jQuery 1.9开始弃用的.on(),使用{{1}}

答案 1 :(得分: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();
});

请注意,在1.9中已弃用的live已被删除。