HTML
<textarea id="photo-42-9" class="comment_box">Write a comment...</textarea>
jQuery代码不起作用,我缺少什么?
$('#photo-42-9').prepend("<div>blah</div>");
修改 更正了ID不匹配,但仍无法正常工作
答案 0 :(得分:4)
prepend()
将指定的标记添加到jQuery选择器返回的对象中(在本例中为textarea
)。 textarea
只能包含文本,不包含其他子元素;因此,您正在尝试创建无效的HTML。
如果您想将<div>
放在之前textarea
:
$('<div>blah</div>').insertBefore('#photo-42-9');
如果您想将新文字添加到textarea
:
$('#photo-42-9').val(
function(i,val){
return 'blah ' + val;
});
参考文献:
答案 1 :(得分:1)
textarea
元素的内容被视为文本,而不是HTML。它们被解析为元素的value
属性。您无法编辑元素的内容:您必须编辑其值。
使用val
及其回调语法的好方法是jQuery-ish方式:
$('#photo-42-9').val(function(i, oldVal) {
return "<div>blah</div>" + oldVal; // return the desired value
});
请注意,我还更正了选择器:您在ID中有一个额外的9
,因此它找不到该元素。
答案 2 :(得分:0)
@Bob:除了David Thomas所说的内容,您的商品的ID为photo-42-9
且您的选择器正在寻找photo-42-99
建议修复:
$('#photo-42-99').text( $('#photo-42-99').text() + "<div>blah</div>" );