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());
}
好的,经过一些编辑,我想我有一个完全可行的解决方案
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());
});
});
我有两列。我想使用复选框选择第 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());
}
好的,经过一些编辑,我想我有一个完全可行的解决方案
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());
});
});