Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 搜索,java我没有错_Javascript - Fatal编程技术网

Javascript 搜索,java我没有错

Javascript 搜索,java我没有错,javascript,Javascript,我编写了一个电话簿应用程序,它有三个功能:添加、删除和搜索。 我希望在填写输入后将内容保存在演示文稿中,同时使用showrecords功能保存后将显示我的演示文稿的内容。 在搜索字段中,我想在添加的联系人中搜索,如果找到结果,它将显示在控制台中 在删除功能中,我还想删除我不想要的任何联系人 但不幸的是,我的所有功能都不起作用,我没有收到任何错误,我也不知道问题出在哪里,请帮助 let AddBtn=document.getElementById('Add'); 让search=document

我编写了一个电话簿应用程序,它有三个功能:添加、删除和搜索。 我希望在填写输入后将内容保存在演示文稿中,同时使用
showrecords
功能保存后将显示我的演示文稿的内容。 在搜索字段中,我想在添加的联系人中搜索,如果找到结果,它将显示在控制台中 在删除功能中,我还想删除我不想要的任何联系人 但不幸的是,我的所有功能都不起作用,我没有收到任何错误,我也不知道问题出在哪里,请帮助

let AddBtn=document.getElementById('Add');
让search=document.getElementById('search');
让name=document.getElementById('name');
let phone=document.getElementById('phone');
让我们选择InputSearch=document.getElementById(“搜索”);
let buttonsearch=document.getElementById(“btnsearch”);
让addBookDiv=document.querySelector('.addbook');
AddBtn.addEventListener(“单击”,addToBook);
addBookDiv.addEventListener(“单击”,removeEntry);
按钮Search.addEventListener(“单击”,搜索联系人);
this.PhoneBookRecord=函数(名称、电话){
this.name=名称;
this.phone=电话;
}
函数addToBook(){
这个.records=[];
让isNull=name.value!=''&&phone.value!='';
if(isNull){
设obj=newphonebookrecord(name.value,phone.value);
记录。推送(obj);
showrecords();
}
}
函数searchContact(){
这个.records=[];
const result=this.records.find((name)=>name==selectInputsearch.value);
如果(!result==未定义){
console.log(结果)
}否则{
console.log(“未找到联系人”)
}
}
功能removeEntry(项目){
这个.records=[];
if(item.target.classList.contains('delbutton')){
让remID=item.target.getAttribute('data-id');
记录:拼接(remID,1);
showrecords();
}
}
函数showrecords(){
这个.records=[];
常数指数=0;
addBookDiv.innerHTML='';
this.records.forEach(元素=>{
设str='';
str+=`'${element.name}'

`; str+=`'${element.phone}'

`; str+=`; addBookDiv.innerHTML+=str; }); } showrecords()

电话簿

这是固定版本。问题是在每个函数的开头将
记录初始化为空数组。我只是在全局范围内初始化
记录
,这样每个函数都将使用该记录进行操作。我还修复了
searchContact()
函数。问题是您过滤了
记录
,因为在中是字符串数组,它是对象数组。您必须根据每个对象的
名称
属性进行比较。检查下面的更改,您可以运行代码段以查看结果

let AddBtn=document.getElementById('Add');
让search=document.getElementById('search');
让name=document.getElementById('name');
let phone=document.getElementById('phone');
让我们选择InputSearch=document.getElementById(“搜索”);
let buttonsearch=document.getElementById(“btnsearch”);
让addBookDiv=document.querySelector('.addbook');
让记录=[];
AddBtn.addEventListener(“单击”,addToBook);
addBookDiv.addEventListener(“单击”,removeEntry);
按钮Search.addEventListener(“单击”,搜索联系人);
this.PhoneBookRecord=函数(名称、电话){
this.name=名称;
this.phone=电话;
}
函数addToBook(){
让isNull=name.value!=''&&phone.value!='';
if(isNull){
设obj=newphonebookrecord(name.value,phone.value);
记录。推送(obj);
showrecords();
}
}
函数searchContact(){
const result=records.find((record)=>record.name==selectInputsearch.value);
如果(结果!==未定义){
console.log('搜索结果:',结果)
}否则{
console.log(“未找到联系人”)
}
}
功能removeEntry(项目){
if(item.target.classList.contains('delbutton')){
让remID=item.target.getAttribute('data-id');
记录:拼接(remID,1);
showrecords();
}
}
函数showrecords(){
常数指数=0;
addBookDiv.innerHTML='';
records.forEach(元素=>{
设str='';
str+=`'${element.name}'

`; str+=`'${element.phone}'

`; str+=`; addBookDiv.innerHTML+=str; }); } showrecords()

电话簿

首先,您对
记录使用
关键字
,并且在每个事件上清理数组(
记录=[]
),因此
for loop
不起作用。他们不需要在这里使用
this
关键字,而是使用
let
var

试试这个:

let ctrl = this;
function PhoneBookRecord(name, phone) {
    this.name = name;
    this.phone = phone;
}
ctrl.records = [];
function addToBook() {
    let isNull = name.value != '' && phone.value != '';
    if (isNull) {
        let obj = new PhoneBookRecord(name.value, phone.value);
        ctrl.records.push(obj);
        showrecords();
    }
}

function searchContact() {
    const result = ctrl.records.find((name) => name === selectInputsearch.value);
    if (!result === undefined) {
        console.log(result)
    } else {
        console.log("Contact not found")
    }
}

function removeEntry(item) {
    if (item.target.classList.contains('delbutton')) {
        let remID = item.target.getAttribute('data-id');
        ctrl.records.splice(remID, 1);
        showrecords();
    }
}

function showrecords() {
    const index = 0;
    addBookDiv.innerHTML = '';
    ctrl.records.forEach(element => {
        let str = '<div class="entry">';
        str += `<div class="name"><p>' ${element.name}'</p></div>`;
        str += `<div class="phone"><p>' ${element.phone}'</p></div>`;
        str += `<div class="del"><a href="#" class="delbutton" data-id="${index}">deleted</a></div>`;
        addBookDiv.innerHTML += str;
    });
}
showrecords();
让ctrl=this;
功能电话簿记录(姓名、电话){
this.name=名称;
this.phone=电话;
}
ctrl.records=[];
函数addToBook(){
让isNull=name.value!=''&&phone.value!='';
if(isNull){
设obj=newphonebookrecord(name.value,phone.value);
ctrl.records.push(obj);
showrecords();
}
}
函数搜索