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

时间:2015-04-17 05:23:54

标签: jquery html input selector

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

然后我需要将两个div添加到该选择器。一个,嵌套在另一个里面。

第一个div应该有class =" item"加上类="写在第二个文本输入" 在第二个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

2 个答案:

答案 0 :(得分:0)

好的,经过一些编辑,我认为我认为我有一个完全有效的解决方案

使用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/

答案 1 :(得分:0)

试试这段代码

$("#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