帮我改变这个JS / Jquery函数来动态创建Div

时间:2011-04-25 05:12:50

标签: jquery html jquery-selectors javascript

我已将代码上传到JSfiddle:

http://jsfiddle.net/TSM_mac/pnQEe/

我希望能够在页面上输入文本输入,然后单击“添加Div类型”按钮,它将在您单击的div中附加(创建)div元素(具有该类=“可编辑”)。

我在使这段代码工作时遇到了困难。谁能找到我出错的地方?

代码

var $currentInput = null;

$("#add_div1, #add_div2, #add_div3").click(function() {
    $currentInput = null;
    if ($currentInput == null) {
        $currentInput = $(this).prev();
        $("label").html($currentInput.attr("id"));
    }
});


var editid;
$("div.editable").click(function(e) {
    e.stopPropagation();
    if ($currentInput == null) return;
    editid = $(this).attr("id");
    var adddiv = GetElements();
    $(this).append(adddiv);
    $("label").html("");
});

function GetElements() {
    if ($currentInput == null) return null;

    var value = $currentInput.val();

    if ($currentInput.attr("id") == "add_div1") return {
        "<div>"+value+"</div>"
    }
    if ($currentInput.attr("id") == "add_div2") return {
        "<div>"+value+"</div>"
    }
    if ($currentInput.attr("id") == "add_div3") return {
        "<div>"+value+"</div>"
    }
}

-

<input type="text" id="add-div1" value="Content of Div 1" />
<div id="add_div1">Add Div Type 1</div>
<input type="text" id="add-div1" value="Content of Div 2" />
<div id="add_div2">Add Div Type 2</div>
<input type="text" id="add-div1" value="Content of Div 3" />
<div id="add_div3">Add Div Type 3</div>



<div id="2" class="defaultclass editable">
    Add a Div Here
</div>
<div id="3" class="defaultclass editable">
     Add a Div Here
</div>
<div id="4" class="defaultclass editable">
    Add a Div Here
</div>

<label></label>

-

input { display: block; padding-top: 10px; }
#add_div1, #add_div2, #add_div3 { background: #c0c0c0; border: solid 1px #777; display: inline-block; }

.editable { border: solid 5px green; margin: 20px; background: blue; color: #fff; }

问候,

泰勒

1 个答案:

答案 0 :(得分:0)

这个现在可以使用

http://jsfiddle.net/pnQEe/5/

(我添加了一些console.log但现在被注释掉了)

似乎您的代码是您需要单击按钮然后单击div

问题#1:您有return { ... }应该{ return ... }return ...

问题#2:您有add-div1,但代码是针对add_div1检查的(下划线,不是连字符)

另外,我尝试不要有两个具有相同或相似ID名称的元素。 (例如文本输入为add-div1,按钮为add_div1 - 看起来太相似了。