Jquery 输入值作为附加内容的选择器。然后使用输入值作为附加内容

Jquery input value as selector to append content. Then use input value as appended content

我有两列。我想使用复选框选择第 1 列第 2 列或两者来附加内容。所以,我想我需要使用复选框的“值”属性作为 $selector.

然后我需要向该选择器附加两个 div。一个嵌套在另一个里面。

第一个 div 应该有 class="item" 加上 class="written in the second text input" 在第二个 div 中 htmlcontent 应该是第一个输入中写入的内容。

谢谢。

<div id="container">    
<div class="a">
    <div class="name">Column 1</div>    
    <div class="one">
      <div class="item eagle">
         <div class="cont">Content for 1A</div>
      </div> 
    </div>    
</div>

<div class="b">
    <div class="name">Column 2</div>    
    <div class="two">
      <div class="item lion">
        <div class="cont">content for 2A</div>
      </div> 
    </div>    
</div>    
</div>


<form id="createitems">
  <input id="content" name="content" type="text" placeholder="Content text here">
  <input id="content2" name="content2" type="text" placeholder="Animal class here">
    
  <input id="colchoice" name="column" type="checkbox" value="one">
  <label for="colchoice">One</label>
    
  <input id="colchoice2" name="column" type="checkbox" value="two">
  <label for="colchoice2">Two</label>

  <button id="create" form="createitems" type="button">Create</button>
</form>


$("#create").click(function(){

var check = $("input[type='checkbox']").is(":checked");
var col = $('input[name="column"]:checked').val();

if (check == true){
    
    $( col ).append("<div class="item"><div class="cont"></div></div>");
    $(".cont").html($("content").val());
    
}

jsFiddle

好的,经过一些编辑,我想我有一个完全可行的解决方案

Javascript:

$("#create").click(function () {

    //Cycles through all checked boxes of name='column'
    $('input[name="column"]:checked').each(function () {
        var outerDiv = $("."+this.value);
        var itemDiv = $('<div/>').addClass("item " + $('#content2').val());
        var contDiv = $('<div/>').addClass("cont").html($("#content").val());

        outerDiv.prepend(itemDiv.prepend(contDiv));

        if (this.value == "one") {
            $('.a').append(outerDiv);
        }

        if (this.value == "two") {
            $('.b').append(outerDiv);
        }
    });

});

我还对你的 CSS 进行了更改,将 div 锚定到父容器的顶部(否则,如果每列中的元素数量不均匀,你将得到未对齐的列)

.a {
    display: inline-block;
    vertical-align: top; //Added this
    width:45%;
}
.b {
    display: inline-block;
    vertical-align: top; //Added this
    width:45%;
}

JSFiddle:https://jsfiddle.net/zmmoojL4/9/

试试这个代码

$("#create").click(function () {
$('input[name="column"]:checked').each(function () {
    $('.' + this.value).find('.cont').append($("#content").val());
    $('.' + this.value).find('.cont').addClass($("#content2").val());
});

});

try this fiddle