我正在创建一个社交媒体网站,并且当用户点击状态时,我正在尝试发表评论textarea。
这是我到目前为止所做的:
$(".status").click(function (){
//Check if status div they clicked on contains a textarea already
if($(this).closest('div').innerHTML.indexOf("<textarea name='status_body'>") == -1) {
//Append with textarea
var textarea = "<textarea name='status_body'></textarea>";
$(this).closest('div').append(textarea);
}
});
在我输入if语句之前,这是有效的。当然,如果没有if语句,每次用户点击时都会添加textarea。如果没有一个,我只想要一个textarea出现。
我尝试过的另一种方法是:
if(!$(this).closest('div:contains("<textarea")').length > 0)
答案 0 :(得分:3)
你很接近,只需检查.length
if ($(this).closest("div").find("textarea").length > 0) {
//contains a text area!
} else {
//Doesnt!
}
答案 1 :(得分:2)
不要将其作为文本进行搜索。你应该威胁textarea
它是什么,一个DOM元素。
if($(this).closest('div').find("textarea[name='status_body']").length == 0) {
/*...*/
}