我有这样的代码
<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();
});
但无法获得价值。我能怎样实现这个目标?
答案 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
已被删除。