Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当不包含文本JQuery时追加div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 仅当不包含文本JQuery时追加div

Javascript 仅当不包含文本JQuery时追加div,javascript,jquery,html,Javascript,Jquery,Html,我正在创建一个社交媒体网站,并试图在用户单击状态时显示一个评论文本区域 以下是我到目前为止的情况: $(".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) {

我正在创建一个社交媒体网站,并试图在用户单击状态时显示一个评论文本区域

以下是我到目前为止的情况:

 $(".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。我只想在没有区域的情况下显示文本区域

我尝试过但失败的另一种方法是:

if(!$(this).closest('div:contains("<textarea")').length > 0) 

你很接近了,只要用.length检查是否存在


你很接近了,只要用.length检查是否存在


不要将其作为文本搜索。您应该威胁textarea,因为它是DOM元素

if($(this).closest('div').find("textarea[name='status_body']").length == 0) {
    /*...*/
}

不要将其作为文本搜索。您应该威胁textarea,因为它是DOM元素

if($(this).closest('div').find("textarea[name='status_body']").length == 0) {
    /*...*/
}

你确定这种使用.closestdiv textarea的方法吗?应该是。最近的“div”。我想可以找到“textarea”。非常感谢,非常感谢!你确定这种使用.closestdiv textarea的方法吗?应该是。最近的“div”。我想可以找到“textarea”。非常感谢,非常感谢!