更新 :为每个数组项目添加 Li 标签
Update : Add Li tags to each array items
所以在您的帮助下,我已经到了向内容区域添加输入工作的阶段,现在我想在用户单击右侧的红叉按钮时删除列表项,如何定位类我从功能外部添加到标签"点击链接"?
谢谢
(function(){
var clickGo = document.querySelector('.button-go');
var searchInput = document.querySelector('.search-input');
var list = document.querySelector('.list');
var listArray = [];
var clickGoFunc = function() {
var searchValue = searchInput.value;
// check if input field is empty
if(searchValue === ""){
alert("please put a value in the input field");
}else{
// check if list item already exists in the array named listArray
if(listArray.indexOf(searchValue) == -1){
listArray.push(searchValue);
// Function for creating loop for added array items and enclosing each array item inside <li>
//Also adding a close button to each array item by adding <a> Tag
var runIt = function (){
for(var i= 0; i < listArray.length; i++ ){
var liTag = document.createElement('li');
var removeItem = document.createElement('span');
var closeLink = document.createElement('a');
closeLink.className = "close-link";
closeLink.setAttribute('href', "#");
closeLink.textContent = 'X';
// adding <a> tag inside span
removeItem.appendChild(closeLink);
liTag.textContent = listArray[i].toUpperCase();
list.appendChild(liTag);
liTag.appendChild(removeItem);
list.appendChild(liTag)
}
// end of for loop
};
// end of runit
// clearing ul.list container before reloading array items.
list.innerHTML = "";
// calling runIt funtion which contains for loop for all the array items
list.appendChild(runIt());
}else{
alert("value already exisits");
}
// end of if and else statement which is checking if value is already there is the array
// pushing new values in the listArray array
// wrapping new array items in li tags and adding close button on each array item
}
// if statement checking if the input field is empty , if not it runs other function which checks following
// end of if and else statement which is checking if value is already there is the array
// pushing new values in the listArray array
// wrapping new array items in li tags and adding close button on each array item
}
// end of clickGoFunc
//calling function
clickGo.addEventListener('click', function(){
clickGoFunc()
});
}());
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}.list li{background-color:#6C6C6C;padding:10px;margin-bottom:10px;color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.close-link{color:#fff;background-color:red;padding:3px;border-radius:3px}.list li span{float:right}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Search NOMO</title></title>
<link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/stylesheets/css/style.min.css">
</head>
<body>
<div class="container-fluid container-wrapper">
<div class="row row-wrapper">
<div class="container-fluid container-header">
<div class="row row-header">
Search NOMO
</div> <!-- row-header -->
</div> <!-- container-header -->
<div class="container-fluid container-search-bar">
<div class="row row-search">
<div class="container container-search-inner">
<div class="row">
<div class="col-lg-12">
<div class="input-group">
<input type="text" class="form-control search-input" placeholder="Add to List...">
<span class="input-group-btn">
<button class="btn btn-default button-go" type="button">Add</button>
</span>
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div> <!-- row -->
</div> <!-- container-search-inner -->
</div> <!-- row-search -->
</div> <!-- container-search-bar -->
<div class="container container-content">
<ul class="list">
</ul>
</div>
</div> <!--row-wrapper -->
</div> <!-- container-wrapper-->
<!-- javascripts -->
<script src="assets/jquery/dist/jquery.min.js"></script>
<script src="assets/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="assets/js/script.min.js"></script>
</body>
</html>
您必须将li
-元素附加到某个ul
元素中。您只需要数组来检查现有值。
有了这些知识,您的代码可以简化为(请参阅代码和 html 中的注释):
var clickGo = document.querySelector('.button-go');
var searchInput = document.querySelector('.search-input');
var currentValues = []; // keep track
clickGo.onclick = function () {
var searchValue = searchInput.value;
if (searchValue === "") { // check empty
alert("please put a value in the input field");
} else if (currentValues.indexOf(searchValue) == -1) { // check existing
currentValues.push(searchValue);
var liTag = document.createElement('li');
liTag.textContent = searchValue;
// append the new li-tag
document.querySelector('[data-vals]').appendChild(liTag);
} else { alert("value already exisits"); }
};
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Search NOMO</title></title>
<link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/stylesheets/css/style.min.css">
</head>
<body>
<div class="container-fluid container-wrapper">
<div class="row row-wrapper">
<div class="container-fluid container-header">
<div class="row row-header">
Search NOMO
</div> <!-- row-header -->
</div> <!-- container-header -->
<div class="container-fluid container-search-bar">
<div class="row row-search">
<div class="container container-search-inner">
<div class="row">
<div class="col-lg-12">
<div class="input-group">
<input type="text" class="form-control search-input" placeholder="Add to List...">
<span class="input-group-btn">
<button class="btn btn-default button-go" type="button">Add</button>
</span>
<ul data-vals></ul><!-- values container -->
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div> <!-- row -->
</div> <!-- container-search-inner -->
</div> <!-- row-search -->
</div> <!-- container-search-bar -->
<div class="container container-content">
</div>
</div> <!--row-wrapper -->
</div> <!-- container-wrapper-->
<!-- javascripts -->
<script src="assets/jquery/dist/jquery.min.js"></script>
<script src="assets/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="assets/js/script.min.js"></script>
</body>
</html>
- 删除已附加到
window
的单击事件侦听器。不需要。 - 尝试设置 HTML 元素的文本时,请勿使用
appendChild
。相反,设置其textContent
. - 在单击处理程序中使用
appendChild
,以便clickGo
containerContent
追加新的li
元素
var clickGo = document.querySelector('.button-go');
var searchInput = document.querySelector('.search-input');
var containerContent = document.querySelector('.container-content');
var listArray = [];
clickGo.onclick = function() {
var searchValue = searchInput.value;
if (searchValue === "") {
alert("please put a value in the input field");
} else {
//checking if array already contains added list item
//if it is not, push the item to the array
if (listArray.indexOf(searchValue) == -1) {
listArray.push(searchValue);
// Adding li tags to the array list items
var liTag = document.createElement('li');
for (var i = 0; i < listArray.length; i++) {
liTag.textContent = listArray[i];
containerContent.appendChild(liTag);
}
// if arry contains already contains list item then alert following message
} else {
alert("value already exisits");
}
}
};
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Search NOMO</title>
</title>
<link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/stylesheets/css/style.min.css">
</head>
<body>
<div class="container-fluid container-wrapper">
<div class="row row-wrapper">
<div class="container-fluid container-header">
<div class="row row-header">
Search NOMO
</div>
<!-- row-header -->
</div>
<!-- container-header -->
<div class="container-fluid container-search-bar">
<div class="row row-search">
<div class="container container-search-inner">
<div class="row">
<div class="col-lg-12">
<div class="input-group">
<input type="text" class="form-control search-input" placeholder="Add to List...">
<span class="input-group-btn">
<button class="btn btn-default button-go" type="button">Add</button>
</span>
</div>
<!-- /input-group -->
</div>
<!-- /.col-lg-6 -->
</div>
<!-- row -->
</div>
<!-- container-search-inner -->
</div>
<!-- row-search -->
</div>
<!-- container-search-bar -->
<div class="container container-content">
</div>
</div>
<!--row-wrapper -->
</div>
<!-- container-wrapper-->
<!-- javascripts -->
<script src="assets/jquery/dist/jquery.min.js"></script>
<script src="assets/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="assets/js/script.min.js"></script>
</body>
</html>
很
抱歉,由于更改并使这项工作,我正在删除和添加东西,忘记在我粘贴在此处的代码中添加UL标签,我正在尝试学习javascript,这是一个真正的帮助,如果您对学习java脚本的好网站和书籍有建议,请告诉我。
我觉得我会在这里发布很多东西来获得帮助
感谢您的耐心等待
相关文章:
- 使用方法将扫描的项目添加到总数中
- 如何将项目添加到Highcharts图例中
- 如何将多个项目添加到列表中
- 将项目添加到动态列表
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- Yeoman/Grunt:向项目添加子目录
- 将项目添加到篮式过滤器与Splice ReactJS Javascript
- 通过Jquery将项目添加到HTML Select
- 向每个堆叠条形图项目添加链接
- 微风:将项目添加到复杂类型的数组中
- 运行并向nodejs项目添加单元测试
- React Redux将项目添加到列表中会转移到其他创建的列表中
- 谷歌表单:将项目添加到响应中
- react.js每n个项目添加一个开始标签或结束标签
- jquery appendTo将多个项目添加到一个容器中
- Javascript window.open() 多次将项目添加到购物车
- 在 ReactJs 状态上将项目添加到数组中,并超时以进行自我删除
- 如何将项目添加到选定的追加列表 jQuery
- 动态将项目添加到精彩弹出库
- 无论如何可以将项目添加到 DOM 中的现有列表中