gpt4 book ai didi

javascript - 从 codepen 导出时,此 JavaScript 将不起作用。代码必须全部在一页中运行

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

我从codepen得到了这个代码:https://codepen.io/jsartisan/pen/wKORYL#=

发生的情况是我将所有内容都放在一页中,但它无法运行。我试图理解它出了什么问题,但它就像上面 codepen 中的示例一样。

这种情况之前在其他 codepen 示例中发生过,但我无法弄清楚它不起作用的原因。

<html>
<head>
<style>
#filter_users {
width:100%;
padding:10px;
}

#users-list {
margin:0;
padding:0;
}

#users-list li {
list-style:none;
padding:10px;
margin:5px 0;
border: 1px solid #e4e4e4;
}
</style>

<script>
var users = [
'Goku',
'Naruto',
'Ichigo',
'Flash',
'Batman',
'Sherlock Holmes',
'Khaleesi',
'Steve Fox'
];

ul = document.getElementById("users-list");

var render_lists = function(lists) {
var li = "";
for (index in lists) {
li += "<li>" + lists[index] + "</li>";
}
ul.innerHTML = li;
}

render_lists(users);

// lets filters it
input = document.getElementById('filter_users');

var filterUsers = function(event) {
keyword = input.value.toLowerCase();
filtered_users = users.filter(function(user) {
user = user.toLowerCase();
return user.indexOf(keyword) > -1;
});
render_lists(filtered_users);
}
input.addEventListener('keyup', filterUsers);
</script>

</head>

<body>
<input type="text" placeholder="Search Users" id="filter_users"/>
<ul id="users-list">

</ul>
</body>
</html>

我希望它能像在 codepen 中一样工作。

最佳答案

您必须将 javascript 代码放在文档正文的末尾。当页面被渲染时,它还没有看到 id users-list 可见的元素。因此,将脚本放在文档末尾会有所帮助。对于更高级的场景,您可以考虑使用一种方法,该方法将等待文档加载,然后首先附加事件监听器。参见例如Pure JavaScript equivalent of jQuery's $.ready() - how to call a function when the page/DOM is ready for it

<html>
<head>


<style>
#filter_users{
width:100%;
padding:10px;
}

#users-list{
margin:0;
padding:0;
}

#users-list li{
list-style:none;
padding:10px;
margin:5px 0;
border: 1px solid #e4e4e4;
}
</style>

</head>
<body>
<input type="text" placeholder="Search Users" id="filter_users"/>

<ul id="users-list">

</ul>
<script>
var users = [
'Goku',
'Naruto',
'Ichigo',
'Flash',
'Batman',
'Sherlock Holmes',
'Khaleesi',
'Steve Fox'
];

ul = document.getElementById("users-list");

var render_lists = function(lists){
var li = "";
for(index in lists){
li += "<li>" + lists[index] + "</li>";
}
ul.innerHTML = li;
}

render_lists(users);

// lets filters it
input = document.getElementById('filter_users');

var filterUsers = function(event){
keyword = input.value.toLowerCase();
filtered_users = users.filter(function(user){
user = user.toLowerCase();
return user.indexOf(keyword) > -1;
});

render_lists(filtered_users);
}

input.addEventListener('keyup', filterUsers);


</script>
</body>
</html>

关于javascript - 从 codepen 导出时,此 JavaScript 将不起作用。代码必须全部在一页中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57557400/

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