2011-08-30 36 views
0

HTMLjQuery的預謀textarea的

<textarea id="photo-42-9" class="comment_box">Write a comment...</textarea> 

jQuery代碼不工作,我缺少什麼?

$('#photo-42-9').prepend("<div>blah</div>"); 

編輯 更正的ID不匹配,仍不能正常工作,雖然

+0

可能是錯字?您選擇的ID是photo-42-99,元素上的id是photo-42-9。 –

+0

''與您在此使用的ID有不同的ID'$('#photo-42-99')prepend(「

blah
」); ' –

回答

4

prepend()添加指定的標記成由jQuery選擇返回的對象(在這種情況下textarea)。 A textarea只能包含文本,不能包含其他子元素;因此你試圖創建無效的html。

如果你想要把<div>之前textarea

$('<div>blah</div>').insertBefore('#photo-42-9'); 

如果要在前面加上新文成textarea

$('#photo-42-9').val(
    function(i,val){ 
     return 'blah ' + val; 
    }); 

參考文獻:

+0

建議修復? – Bob

+0

我會試試,但是你想要做什麼..? –

+0

'insertBefore'的作品,你搖滾! – Bob

0

@Bob:除了大衛什麼托馬斯說,你的項目有photo-42-9 ID和你的選擇是尋找photo-42-99

修復建議:

$('#photo-42-99').text($('#photo-42-99').text() + "<div>blah</div>"); 
1

一個textarea的內容元素被視爲文本,而不是HTML。它們被解析爲元素的value屬性。您無法編輯元素的內容:您必須編輯其值。

這樣做的很好,jQuery的上下的方法是用val和其回調的語法:

$('#photo-42-9').val(function(i, oldVal) { 
    return "<div>blah</div>" + oldVal; // return the desired value 
}); 

jsFiddle

請注意,我還糾正了選擇:你曾在附加9 ID,所以它不會找到該元素。

+0

這是比我的建議好一點。 +1 – Dutchie432