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