gpt4 book ai didi

javascript - 初级数组问题 - Javascript

转载 作者:行者123 更新时间:2023-11-28 17:27:58 25 4
gpt4 key购买 nike

我在使用 JavaScript 中的应用程序时遇到问题。

我似乎随机遇到了一个问题,我的数组没有在 JavaScript 中显示 - 我已经尝试多次重新编写程序,有时有效,有时无效。这是我最近失败的尝试的一个例子。谁能确切地告诉我为什么该数组没有出现在浏览器中?我尝试设置过滤器和表单。我正在尝试创建一个列表,其中包含数组中的过滤器对象。

<!DOCTYPE html> 
<html>
<head>
<title>Work</title>
</head>

<body>
<h1>Todos</h1>

<todo class="tddiv"></todo>
<input type="text" class="todo" placeholder="type here">
<form class="todo-form">
<input type="text" placeholder="input-todo-text" name="addTodo">
<button>Submit Text</button>
</form>

<script src="script.js"></script>
</body>
</html>

JavaScript

let todos = [{
text: 'Order cat food',
completed: false
}, {
text: 'Clean kitchen',
completed: true
}, {
text: 'Buy food',
completed: true
}, {
text: 'Do work',
completed: false
}, {
text: 'Exercise',
completed: true
}]


const filters = {
searchText: ''
}

const renderTodos = function(todos, filters) {
const filter = todos.filter(function(todo) {
return
todo.text.toLowerCase().includes(filters.searchText.toLowerCase())
})

document.querySelector('.tddiv').innerHTML = ''

filter.forEach(function(a) {
const add = document.createElement('p')
add.textContent = a.text

document.querySelector('.tddiv').appendChild(add)
})
}

renderTodos(todos, filters)


document.querySelector('.text').addEventListener('input', function(e) {
filters.searchText = e.target.value

renderTodos(todos, filters)
})

最佳答案

过滤器方法中的 return 语句后面有一个新行,它阻止了 includes 方法调用(js 解释器用 ; 替换新行)

document.querySelector('.text') 更改为 querySelector('input[type=text]'),并替换 e.target。 value 与此 querySelector 中的 this.value(this 此处指的是 input 元素)。

let todos = [{
text: 'Order cat food',
completed: false
}, {
text: 'Clean kitchen',
completed: true
}, {
text: 'Buy food',
completed: true
}, {
text: 'Do work',
completed: false
}, {
text: 'Exercise',
completed: true
}]


const filters = {
searchText: ''
}

const renderTodos = function(todos, filters) {
const filter = todos.filter(function(todo) {
return todo.text.toLowerCase().includes(filters.searchText.toLowerCase())
})

document.querySelector('.tddiv').innerHTML = ''

filter.forEach(function(a) {
const add = document.createElement('p')
add.textContent = a.text

document.querySelector('.tddiv').appendChild(add)
})
}

renderTodos(todos, filters)


document.querySelector('input[type=text]').addEventListener('input', function(e) {
filters.searchText = this.value

renderTodos(todos, filters)
})
<h1>Todos</h1>

<todo class="tddiv"></todo>
<input type="text" class="todo" placeholder="type here">
<form class="todo-form">
<input type="text" placeholder="input-todo-text" name="addTodo">
<button>Submit Text</button>
</form>

<script src="script.js"></script>

关于javascript - 初级数组问题 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51147619/

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