gpt4 book ai didi

javascript - 通过索引值从数组中删除项目

转载 作者:行者123 更新时间:2023-12-01 02:46:40 25 4
gpt4 key购买 nike

我希望能够删除以下数组中的任何独立项目(cherry pick)并将其删除,这样它就不会显示在 dom 中。我想通过它的索引号来做到这一点。

例如我可以通过

记录它

console.log(div.questions[2]);

我可以使用什么来从 dom 中删除 div.questions[2] 而无需刷新?

还可以通过向按钮添加事件来完成此操作,以便无需刷新屏幕即可更改显示的事件吗?

最终我想做的是让一些问题沿着一条路径走下去,然后它会跳到其余的常规问题。

HTML

<html>
<head>

<title>AlsSate Quiz Prototype</title>
<link href ="style.css" rel ="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<script src="jquery-3.2.1.min.js"></script>
<script src = "main.js"></script>

</head>


<body>

<div class="container">
</div>



</html>

代码(来自main.js)

$( document ).ready(function() {



var div = {
questions: [
{
title: "what vehicle",
description: "1 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1:"car",
btn2:"motorcycle"
},
{
title: "what brand",
description: "2 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1:"honda",
btn2:"harley"
},
{
title: "what car",
description: "3 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1: "chevy",
btn2: "ford"
},
{
title: "how many miles do you drive a week",
description: "4 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1: "500",
btn2: "100"
}
]
};
//div.questions=div.questions.slice(0,3);
//div.questions=div.questions.splice(1,3);





$.each(div.questions,function(i,x){
$('.container').append('<div class="wrapper"><h3>'+x.title+'<p>'+x.description+'</p></h3> '+x.btn1+' '+x.btn2+'</div>')
})

console.log(div.questions[0]);

//var hide =div.questions[1]
//hide.hide();



});//end ready

最佳答案

如果我正确理解了这个问题,您只是想从数据数组中创建 DOM 对象,并且还可以通过单击某些内容来删除这些 DOM 元素。

一种方法是将新对象的引用实际存储在数组项中。在本例中,我将每个新 DOM 对象添加到名为“obj”的新节点中的数组(请参阅循环)。

我还添加了一个接受数组索引的方法,并将使用该索引从数组节点中定位该对象,并使用 jQuery 的 remove() 方法将其删除(因为您使用的是 jQuery 和可能更熟悉它)。

请注意,这并不会从问题中删除数组项,因为我认为这不是您的意图,而只是删除 dom 对象。

$( document ).ready(function() {
var div = {
questions: [
{
title: "what vehicle",
description: "1 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1:"car",
btn2:"motorcycle"
},
{
title: "what brand",
description: "2 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1:"honda",
btn2:"harley"
},
{
title: "what car",
description: "3 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1: "chevy",
btn2: "ford"
},
{
title: "how many miles do you drive a week",
description: "4 Lorem ipsum dolor sit amet, consectetur adipiscing",
btn1: "500",
btn2: "100"
}
]
};

$.each(div.questions,function(i,x){

var newDiv = document.createElement("div");
newDiv.innerHTML = '<h3>'+x.title+'<p>'+x.description+'</p></h3> '+x.btn1+' '+x.btn2;
newDiv.className += 'wrapper';

div.questions[i]['obj'] = newDiv;

$('.container').append(newDiv)
});

function removeByArrayIndex(indx) {
$(div.questions[indx]['obj']).remove();
};

$("button").on('click',function() {
removeByArrayIndex($(this).attr("rel"));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>

<title>AlsSate Quiz Prototype</title>
<link href ="style.css" rel ="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<script src="jquery-3.2.1.min.js"></script>
<script src = "main.js"></script>

</head>


<body>

<button rel="0">Remove 1</button>
<button rel="1">Remove 2</button>
<button rel="2">Remove 3</button>
<button rel="3">Remove 4</button>

<hr/>


<div class="container">
</div>


</body>
</html>

关于javascript - 通过索引值从数组中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com