仅当div不包含文本JQuery时才附加div

时间:2014-12-10 19:08:19

标签: javascript jquery html

我正在创建一个社交媒体网站,并且当用户点击状态时,我正在尝试发表评论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) 

2 个答案:

答案 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) {
    /*...*/
}