我通过以下代码获取所有文件上传控件
var fileuploadControls = $( "input[type='file']" );
现在我想循环遍历fileuploadControls并删除如果ID不匹配此类
for(var i=0;i<fileuploadControls .length;++i)
{
if(fileuploadControls[i].id != "A")
{
//remove the item and fileUploadcontrols should be same type of abject as returned by the jquery not an array
}
}
我已经尝试过拼接它可以工作,但它返回一个数组,我不想要在删除项目后,fileuploadControls应该是与删除之前相同类型的对象,只有一个项目应该更少
有人可以帮助编码吗
我在Angular ui-grid中使用以下celltemplate
cellTemplate: '<div class="ui-grid-cell-contents"> <input name="curfewRegularizationFile" id="curfewRegularizationFile" type="file" class="k-state-disabled" /></div>',
在javascript文件中我正在做这个
fileuploadControls[i].kendoUpload({ // Do something as per kendo});
答案 0 :(得分:0)
从DOM中删除:
在你的循环中你可以这样做:
for(var i = 0; i < fileuploadControls.length; ++i ) {
if( fileuploadControls[i].id !== "A" )
fileuploadControls.eq(i).remove();
}
但是我会以jQuery方式完成它,在使用jQuery对象的循环中,你可以使用each
来完成它。但这甚至是选择最慢的选择。
fileuploadControls.each(function() {
if( $(this).attr("id") !== "A" )
$(this).remove();
});
或直接作为子选择器:
fileuploadControls.not("#A").remove();
仅从对象中删除
通过更好的初始选择器:
var fileuploadControls = $("input[type=file]:not(#A)");
通过修剪jQuery对象:
fileuploadControls = fileuploadControls.not("#A");
通过过滤器:
fileuploadControls = fileuploadControls.filter(function() {
return $(this).attr("id") !== "A";
});
答案 1 :(得分:0)
您可以创建一个删除元素的功能
for(var i=0;i<fileuploadControls .length;++i)
{
if(fileuploadControls[i].id != "A")
{
remove(fileuploadControls[i].id);
}
}
function remove(id) {
return (el=document.getElementById(id)).parentNode.removeChild(el);
}