Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当有2个字符串时按空格拆分数组_Javascript_Jquery - Fatal编程技术网

Javascript 当有2个字符串时按空格拆分数组

Javascript 当有2个字符串时按空格拆分数组,javascript,jquery,Javascript,Jquery,我正在从用户创建的列表中动态添加和删除复选框。如果列表中的项目是一个单词,则此项可以正常工作,但如果它包含空格,则无法正常工作。我理解为什么它不起作用,但无法找到如何从阵列中成功拼接正确的一个 var-boxCounter=0; 函数addToCheckListNew(项){ var newSet=“”; $('.cbDiv').append(新闻集); var newBox=''+项目+''; $(“.cbGroup”+boxCounter).append(newBox.trigger('c

我正在从用户创建的列表中动态添加和删除复选框。如果列表中的项目是一个单词,则此项可以正常工作,但如果它包含空格,则无法正常工作。我理解为什么它不起作用,但无法找到如何从阵列中成功拼接正确的一个


var-boxCounter=0;
函数addToCheckListNew(项){
var newSet=“”;
$('.cbDiv').append(新闻集);
var newBox=''+项目+'';
$(“.cbGroup”+boxCounter).append(newBox.trigger('create');
boxCounter++;
$(“#新列表页iteminput”).val(“”);
$(“#新建列表页itemlist”).listview(“刷新”);
currentList.push(项目);
}
//删除所选复选框
函数deleteCheckedListNew(){
var checkedboxs=$('form input:checked')。父项('fieldset');

对于(var i=0;i我认为您根本不需要担心文本的值

您可以简单地使用要从存储索引中删除的项的显示索引

这是基于这样的假设,即您还没有内置任何排序功能

我把它简化为

//Delete the selected checkboxes
function deleteCheckedListNew() {
    var checkedRows = $('fieldset').has(':checkbox:checked');
    checkedRows.each(function(index){
        currentList.splice(index, 1)
    }).remove();

}
我建议的下一步是为每个项目使用一个对象数组,然后您可以为每个项目分配一个唯一的id,这比解析文本要简单得多

存储ID之后,您就可以对列表进行排序,并且仍然可以使用array filter()或其他方法轻松找到存储的对象

这样,阵列看起来更像

[
  {id:1, text:'eat lunch'},
  {id:2, text:'have a beer'}
]
然后,id也会被放在模板中的每一行上,以便于在数组中识别


获取您正在执行的字段集文本没有意义。添加数据属性更有意义(简单修复与问题无关)。如果用户使用2个或更多单词,会有什么影响…这难道不是唯一的吗?你能在jsfiddle.net中提供演示吗?我第一次使用jsfiddle时,我无法获得与我的应用程序相同的删除操作。我希望这能让你更好地理解。你能解释一下使用数据属性的原因吗?嗨,我认为这是一个问题,因为它删除了列表中的第一个选项。我认为使用多个列表会从阵列中删除不正确的一个。大修…包括存储对象在删除活动阵列后检查控制台据我所知,它不会从阵列中删除任何内容?我添加了一个警报,它将要删除,但不会删除?我了解I的用法d我认为你是对的,这是下一步。我在发布时忘了保存一些更改。我不得不退出…这里更新的作品非常完美,也许你想编辑你的原始答案,非常感谢!
[
  {id:1, text:'eat lunch'},
  {id:2, text:'have a beer'}
]