Javascript 正在追加的当前元素
我想这么做真是疯了。 如何获得jQuery的append方法追加的当前元素? 我知道它会附加到集合中的每个元素,但是没有办法得到当前元素的迭代 假设我们有这个HTMLJavascript 正在追加的当前元素,javascript,jquery,html,Javascript,Jquery,Html,我想这么做真是疯了。 如何获得jQuery的append方法追加的当前元素? 我知道它会附加到集合中的每个元素,但是没有办法得到当前元素的迭代 假设我们有这个HTML <div class="parent" id="1"> <div class="list"></div> </div> <div class="parent" id="2"> <div class="list"></div> <
<div class="parent" id="1">
<div class="list"></div>
</div>
<div class="parent" id="2">
<div class="list"></div>
</div>
... more dynamically generated parents
但是它说未定义
,因为这个
是:
Window {speechSynthesis: SpeechSynthesis, caches: CacheStorage, localStorage: Storage, sessionStorage: Storage, webkitStorageInfo: DeprecatedStorageInfo…}
(我猜是文件)
有什么方法可以解决这个问题而不必切换到“foreach”循环?迭代通过类名获得的每个元素,如
$('.list')
提供一个数组。对于迭代,可以使用.each()
函数
$(函数(){
$(“.list”)。每个(函数(){
var id=$(this).closest('.parent').attr('id');
var html=''
$(this.append(html);
})
})
javascript
var max_fields = 100; //maximum input boxes allowed
var wrapper = $("#input_fields_wrap"); //Fields wrapper
var add_button = $("#add_field_button"); //Add button ID
var x = $(".counter").length; //initlal text box count
$(add_button).on("click",function(){ //on add input button click
//alert("masuk klikc")
//e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div class="counter"><div class="control-group "><label class="control-label" for="perluDilakukanTindakan">Tindakan Perbaikan Yang Perlu Dilakukan '+x+' :</label><div class="controls">'
+'<textarea name="perluDilakukanTindakan" cols="" rows="" id="perluDilakukanTindakan" style="margin-left: 20px; width: 350px;"></textarea></div>'
+'</div>'
+'<div class="control-group">'
+'<div class="controls">'
+'<label class="control-label">Label Detail '+x+' :</label>'
+' <input type="button" value="Delete Detail Perbaikan" class="remove_field btn btn-mini btn-danger" style="margin-top: 4px;">'
+'</div>'
+'</div>'
+'<div class="control-group "><label class="control-label" for="sDeadlinePerbaikan">Detail Att '+x+' :</label><div class="controls">'
+'<input type="text" name="stringDeadlinePerbaikan" id="sDeadlinePerbaikan'+x+'" value="" class="sDeadlinePerbaikan fieldShort"></div>'
+'</div></div>'); //add input box
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').parent('div').parent('div').remove(); x--;
});
var max_字段=100//允许的最大输入框数
var wrapper=$(“#输入_字段_wrapp”)//字段包装器
var add_button=$(“#add_field_button”)//添加按钮ID
变量x=$(“.counter”).length//初始文本框计数
$(添加按钮)。在(“单击”上,函数(){//在添加输入按钮上单击
//警报(“masuk klikc”)
//e、 预防默认值();
如果(x
html
图Tindakan Perbaikan 1:
这是我已经实现的动态js,这个脚本将在最后一个元素中附加“html”。如果需要附加当前元素,只需将“html文本”修改为所选屏幕上的元素即可 $(“.list”)将返回一个数组,对它进行迭代,对于每个元素追加htmlyup,我不想做的一件事是切换到foreach循环尽管我不想切换到foreach/each循环,但这是最干净的方法。尽管如此,它不适用于我的特定用例,但它将作为我问题的答案,除非出现其他问题。我的逻辑有问题,使用它将导致每次添加新的“父级”时都重写每个输入。我得做这件事。
Window {speechSynthesis: SpeechSynthesis, caches: CacheStorage, localStorage: Storage, sessionStorage: Storage, webkitStorageInfo: DeprecatedStorageInfo…}
var max_fields = 100; //maximum input boxes allowed
var wrapper = $("#input_fields_wrap"); //Fields wrapper
var add_button = $("#add_field_button"); //Add button ID
var x = $(".counter").length; //initlal text box count
$(add_button).on("click",function(){ //on add input button click
//alert("masuk klikc")
//e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div class="counter"><div class="control-group "><label class="control-label" for="perluDilakukanTindakan">Tindakan Perbaikan Yang Perlu Dilakukan '+x+' :</label><div class="controls">'
+'<textarea name="perluDilakukanTindakan" cols="" rows="" id="perluDilakukanTindakan" style="margin-left: 20px; width: 350px;"></textarea></div>'
+'</div>'
+'<div class="control-group">'
+'<div class="controls">'
+'<label class="control-label">Label Detail '+x+' :</label>'
+' <input type="button" value="Delete Detail Perbaikan" class="remove_field btn btn-mini btn-danger" style="margin-top: 4px;">'
+'</div>'
+'</div>'
+'<div class="control-group "><label class="control-label" for="sDeadlinePerbaikan">Detail Att '+x+' :</label><div class="controls">'
+'<input type="text" name="stringDeadlinePerbaikan" id="sDeadlinePerbaikan'+x+'" value="" class="sDeadlinePerbaikan fieldShort"></div>'
+'</div></div>'); //add input box
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').parent('div').parent('div').remove(); x--;
});
<div id="input_fields_wrap">
<div class="counter">
<input type="textarea" name="perluDilakukanTindakan" id="perluDilakukanTindakan" label="Tindakan Perbaikan Yang Perlu Dilakukan 1 " labelSeparator=":" cssStyle="margin-left: 20px; width: 350px;" />
<div class="control-group">
<div class="controls">
<label class="control-label">PIC Tindakan Perbaikan 1 :</label>
<input type="text" cssClass="textFieldBranchCode"
id="picTindakanPerbaikan" name="picTindakanPerbaikan"
cssStyle="margin-left:20px;" labelposition="left"
labelSeparator="" theme="simple" readonly="true"/>
<input type="text" id="namaLengkapTindakanPerbaikan"
name="namaLengkapTindakanPerbaikan" label=""
labelposition="left" labelSeparator="" theme="simple"
readonly="true" cssStyle="margin-left:0px;" />
<input type="button" value="Add Detail Perbaikan " id="add_field_button" class="btn btn-mini btn-success" style="margin-top: 4px;"/>
</div>
</div>
<input type="text" name="stringDeadlinePerbaikan" id="stringDeadlinePerbaikan" label="Label detail 1 " labelSeparator=":" cssClass="sDeadlinePerbaikan fieldShort" />
</div>
</div>