Jquery 在哪里传递锚标签

Jquery 在哪里传递锚标签,jquery,node.js,ajax,Jquery,Node.js,Ajax,我正在尝试从open library book api获取数据,我已经在ui中获取了数据,但找不到应该在哪里放置锚定标记。 正在提取数据,但不知道在哪里放置锚标记,以便调用该页面。 我想在用户搜索输入任何名称时提取记录,这部分已经完成 现在我找到了在我的记录中放锚标签的地方 var books=新猎犬({ datumTokenizer:Bloodhound.tokenizers.obj.whitespace, queryTokenizer:猎犬,标记,空白, 远程:{ 网址:'http://o

我正在尝试从open library book api获取数据,我已经在ui中获取了数据,但找不到应该在哪里放置锚定标记。 正在提取数据,但不知道在哪里放置锚标记,以便调用该页面。 我想在用户搜索输入任何名称时提取记录,这部分已经完成 现在我找到了在我的记录中放锚标签的地方

var books=新猎犬({
datumTokenizer:Bloodhound.tokenizers.obj.whitespace,
queryTokenizer:猎犬,标记,空白,
远程:{
网址:'http://openlibrary.org/search.json?title=%QUERY',
通配符:“%QUERY”,
过滤器:函数(搜索结果){
返回$.map(searchResults.docs),函数(searchResults){
//console.log(searchResults.author\u name);
//log(“key is”+searchResults.key)
if(JSON.parse(sessionStorage.getItem(“selectedBooks”)==undefined | | JSON.parse(sessionStorage.getItem(“selectedBooks”).indexOf(searchResults.title))=-1)){
返回{
标题:searchResults.title,
key:searchResults.key,
};
}
});
}
}
});
var authorsList=[];
var=新的猎犬({
datumTokenizer:Bloodhound.tokenizers.obj.whitespace,
queryTokenizer:猎犬,标记,空白,
远程:{
网址:'http://openlibrary.org/search.json?author=%QUERY',
通配符:“%QUERY”,
过滤器:函数(搜索结果){
返回$.map(searchResults.docs),函数(searchResults){
if(searchResults.author_name!==未定义){
var author=searchResults.author_name.toString();
}
if(authorsList.indexOf(author)=-1){
authorsList.push(author);
返回{
author\u key:searchResults.author\u key,
作者:作者,,
};
}
});
},
}
});
$('#多个数据集.typeahead')。typeahead({
推荐理由:没错
}, {
名称:'书籍',
显示:“标题”,
资料来源:书籍,
模板:{
标题:“书籍”
}
}, {
姓名:'作者',
显示:“作者”,
资料来源:作者,
模板:{
标题:“作者”
}
});
$(“#多个数据集”).bind('typeahead:selected',函数(obj,datum,name){
如果(名称=='books'){
var selectedBooks=JSON.parse(sessionStorage.getItem(“selectedBooks”);
如果(selectedBooks==null){
var a=[];
a、 推(基准.标题);
setItem(“selectedBooks”,JSON.stringify(a));
}否则{
选择图书。推送(基准。标题);
setItem(“selectedBooks”,JSON.stringify(selectedBooks));
}
}else if(name=='authors'){
var selectedAuthors=JSON.parse(sessionStorage.getItem(“selectedAuthors”);
如果(selectedAuthors==null){
var a=[];
a、 push(datum.author);
setItem(“selectedAuthors”,JSON.stringify(a));
}否则{
选择authors.push(datum.author);
setItem(“selectedAuthors”,JSON.stringify(selectedAuthors));
}
}
$('.typeahead').typeahead('val','');
更新列表(JSON.parse(sessionStorage.getItem(“selectedAuthors”)),JSON.parse(sessionStorage.getItem(“selectedBooks”);
});
更新列表(JSON.parse(sessionStorage.getItem(“selectedAuthors”)),JSON.parse(sessionStorage.getItem(“selectedBooks”);
函数更新列表(作者、书籍){
$(“#authorlist li”).remove();
$('#booklist li')。删除();
$.each(作者、函数(索引、名称){
//log(“其作者数据”+作者名称);
$(“#authorlist”)。追加(“
  • ”) }); $.each(书籍、功能(索引、名称){ console.log(“账簿数据”+账簿); $(“#书目”)。追加(“
  • ”) }); }
    /*脚手架*/
    /* ----------- */
    .tt菜单,
    .要点{
    文本对齐:左对齐;
    }
    /*基本样式*/
    /* ----------- */
    html{
    字体:标准18px/1.2“Helvetica Neue”,Roboto,“Segoe UI”,Calibri,无衬线;
    颜色:#292f33;
    }
    a{
    颜色:#03739c;
    文字装饰:无;
    }
    a:悬停{
    文字装饰:下划线;
    }
    .目录李{
    显示:内联块;
    *显示:内联;
    缩放:1;
    }
    .目录li a{
    字体大小:16px;
    颜色:#999;
    }
    p+p{
    利润率:30px0;
    }
    /*网站主题*/
    /* ---------- */
    .头衔{
    利润率:20px0;
    字体大小:64px;
    }
    .举例{
    填充:30px0;
    }
    .示例名称{
    利润率:20px0;
    字体大小:32px;
    }
    .演示{
    位置:相对位置;
    *z指数:1;
    利润率:50px0;
    }
    .提前打印,
    .tt查询,
    .tt提示{
    宽度:396px;
    高度:30px;
    填充:8px 12px;
    字体大小:24px;
    线高:30px;
    边框:2个实心#ccc;
    -webkit边界半径:8px;
    -moz边界半径:8px;
    边界半径:8px;
    大纲:无;
    }
    .提前打印{
    背景色:#fff;
    }
    .typeahead:聚焦{
    边框:2px实心#0097cf;
    }
    .tt查询{
    -webkit盒阴影:插入0 1px 1px rgba(0,0,0,0.075);
    -moz盒阴影:插入0 1px 1px rgba(0,0,0,0.075);
    盒影:插入0 1px 1px rgba(0,0,0,0.075);
    }
    .tt提示{
    颜色:#999
    }
    .tt菜单{
    宽度:600px;
    利润率:12像素400像素;
    填充:8px0;
    背景色:#fff;
    边框:1px实心#ccc;
    边框:1px实心rgba(0,0,0,0.2);
    -webkit边界半径:8px;
    -moz边界半径:8px;
    边界半径:8px;
    -webkit盒阴影:0 5px 10px rgba(0,0,0,2);
    -moz盒阴影:0 5px 10px rgba(0,0,0,2);
    盒影:0 5px 10px rgba(0,0,0,2);
    }
    .tt建议{
    填充:3px20px;
    字号:18px;
    线高:24px;
    }
    .tt建议:悬停{
    光标:指针;
    颜色:#fff;
    背景色:#0097cf;
    }
    .tt-suggestion.tt-cursor{
    颜色:#fff;
    背景色:#0097cf;
    }
    .tt建议p{
    保证金:0;
    }
    .要点{
    字体大小:14px;
    }
    /*示例特定样式*/
    /* ----------------------- */
    #自定义模板。空消息{
    填充物:5px10px;
    文本对齐:居中;
    }
    #多个数据集。联盟名称{
    保证金:0 20px 5px 20px;
    填充:3px0;
    边框底部:1px实心#ccc;
    }
    #可滚动下拉菜单{
    最大高度:150像素;
    溢出y:自动;
    }
    #rt
    
     <script>
    var books = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace,
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: {
            url: 'http://openlibrary.org/search.json?title=%QUERY',
            wildcard: '%QUERY',
            filter: function (searchResults) {
                return $.map(searchResults.docs, function (searchResults) {
                    //  console.log(searchResults.author_name);
                    // console.log("key is "+searchResults.key)
                    if (JSON.parse(sessionStorage.getItem("selectedBooks") == undefined || JSON.parse(sessionStorage.getItem("selectedBooks").indexOf(searchResults.title)) == -1)){
                        return {
                            title: searchResults.title,
                            key: searchResults.key,
                        };
                    }
                });
            }
        }
    });
    var authorsList = [];
    var authors = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace,
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: {
            url: 'http://openlibrary.org/search.json?author=%QUERY',
            wildcard: '%QUERY',
            filter: function (searchResults) {
                return $.map(searchResults.docs, function (searchResults) {
                    if (searchResults.author_name !== undefined){
                        var author = searchResults.author_name.toString();
                    }
                    if (authorsList.indexOf(author) == -1) {
                        authorsList.push(author);
                        return {
                            author_key: searchResults.author_key,
                            author: author,
                        };
                    }
                });
            },
        }
    });
    $('#multiple-datasets .typeahead').typeahead({
            highlight: true
        },
        {
            display: 'title',
            source: books,
            templates: {
                header: '<h3 class="search">Books List</h3>'
            }
        },
        {
            name: 'authors',
            display: 'author',
            source: authors,
            templates: {
                header: '<h3 class="search">Authors List</h3>'
            }
        });
    $('#multiple-datasets').bind('typeahead:selected', function(obj, datum, name) {
        console.log(datum);
        if (name === 'authors'){
         var  request =  $.ajax({
    
             type: 'POST',
             url: `http://localhost:9090/history`,
             data: {author: datum.author}
               });
               request.done(function (msg) {
                   window.location.href="/author/authors/" +datum.author_key[0];
               });
            request.fail(function (jqXHR,textStatus) {
                alert("Request Failed"+textStatus);
    
            });
        }
        else
        {
            var  request =  $.ajax({
    
                type: 'POST',
                url: `http://localhost:9090/history`,
                data: {book: datum.title}
            });
            request.done(function (msg) {
                window.location.href="/book" +datum.key;
            });
            request.fail(function (jqXHR,textStatus) {
                alert("Request Failed"+textStatus);
    
            });
    
        }
    
    });
     </script>