- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我尝试在 jQuery 中实现搜索栏功能。我在 StackOverflow 上偶然发现了一个非常好的解决方案,它显然对其他人有用。但是,当我尝试实现搜索功能时,搜索栏会在有人开始输入时消失。我将不胜感激任何帮助!
var employeesById = {
"8110923": {
"Name": "John Glanton",
"Position": "Chief Executive",
"Hire Date": "2008-01-15"
},
"7734981": {
"Name": "Samuel Chamberlain",
"Position": "Sales",
"Hire Date": "2012-05-01"
},
"3400981": {
"Name": "Louis Toadvine",
"Position": "Customer Support",
"Hire Date": "2011-08-24"
},
"5517823": {
"Name": "Ben Tobin",
"Position": "Developer",
"Hire Date": "2013-03-19"
},
"4587234": {
"Name": "David Brown",
"Position": "Director of HR",
"Hire Date": "2012-01-10"
}
}
var wrapper = $('#employees'),
container;
for (var key in employeesById) {
container = $('<div class="employee"></div>');
wrapper.append(container);
container.append('<span class="name">' + employeesById[key]["Name"] + ' ' + '</span>');
container.append('<span class="position">' + employeesById[key]['Position'] + ' ' + '</span>');
container.append('<span class="hireDate">' + employeesById[key]['Hire Date'] + ' ' + '</span>');
container.append('<span class="id">' + key + ' ' + '</span>');
}
function compare(a, b) {
if (a.last_nom < b.last_nom)
return -1;
if (a.last_nom > b.last_nom)
return 1;
return 0;
}
$("#search").on("keyup", function() {
var g = $(this).val().toLowerCase();
$(".controls .control input").each(function() {
var s = $(this).text().toLowerCase();
$(this).closest('.control')[s.indexOf(g) !== -1 ? 'show' : 'hide']();
});
});
body {
font-family: Arial;
margin-bottom: 1000px;
}
.instructions {
font-family: Times New Roman;
width: 500px;
}
.controls {
margin-top: 20px;
margin-left: 12px;
margin-bottom: 12px;
}
.control {
padding-bottom: 4px;
}
.employees {
width: 300px;
margin-left: 12px;
}
.employee {
border: 1px solid black;
padding: 4px 4px 4px 4px;
margin-bottom: 8px;
}
.employee .name {
font-size: 14pt;
}
.employee .position {
display: block;
}
.employee .hireDate {
display: block;
font-size: 10pt;
}
.employee .id {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="instructions">
You have been asked to modify this HTML page using javascript and CSS to make it interactive. If you look at the source of this page, you will find a javascript variable named "employeesById" containing employee information. Your job is to display that
information in a user-friendly way and enable simplistic sorting and searching of that data.
<p>You will do all of this <em>without</em> a server; you should implement this purely using javascript, HTML and CSS. To implement your solution, <b>please modify
the source of this HTML page</b>. (Do not create a new file.)
<p>In your implementation you may use jQuery, or you may do it without using a javascript framework at all. jQuery is already included in the page. Please do not import any other javascript libraries. You are free to use the internet to lookup API references
or get any tips you need.
<p>Here are the specific requirements you have been asked to implement:
<ol>
<li>A "business card" should be shown for each employee. A sample business card for John Glanton has been included for reference, but you should change this so the data is taken from employeesById for all employees rather than being hardcoded HTML.
Please match the current style exactly.</li>
<li>The user should be able to choose to sort by Name or ID, and the business cards should be immediately re-rendered in that order. (You can sort Name exactly as it appears - you don't need to extract the last name and order by that first.)</li>
<li>The user should be able to type in a partial employee name. You should match this against business cards by employee name, case insensitively, with an implicit "wildcard" before and after the typed string. Any business cards not matching this
should be removed. <b>For example:</b> if one types "b" it should show Ben Tobin, David Brown and Samuel Chamberlain. But once the user types "br", it should show only David Brown.</li>
<li>We would like the user's ID to appear in the top right corner of each business card. Using CSS only (i.e. do not change the HTML markup), move the ID to the top right of each card.</li>
</ol>
<p>Your solution will be graded based on the following criteria:
<ul>
<li>Accurate implementation of each of the requirements listed above</li>
<li>Clarity and conciseness of code</li>
</ul>
</div>
<hr/>
<div class="controls">
<div class="control">Search:
<input type="text" name="search" id="search" />
</div>
<div class="control">Sort:
<select name="sort" id="sort" onchange="myFunction()">
<option name="Name">Name</option>
<option name="ID">ID</option>
</select>
</div>
</div>
<div id="employees">
</div>
最佳答案
您正在搜索搜索字段本身。我假设这不是您想要搜索的内容,而是您想搜索您的 .employee
元素。
如果是这样,只需修改该代码块以搜索 $('.employee').text()
即可。
var employeesById = {
"8110923": {
"Name": "John Glanton",
"Position": "Chief Executive",
"Hire Date": "2008-01-15"
},
"7734981": {
"Name": "Samuel Chamberlain",
"Position": "Sales",
"Hire Date": "2012-05-01"
},
"3400981": {
"Name": "Louis Toadvine",
"Position": "Customer Support",
"Hire Date": "2011-08-24"
},
"5517823": {
"Name": "Ben Tobin",
"Position": "Developer",
"Hire Date": "2013-03-19"
},
"4587234": {
"Name": "David Brown",
"Position": "Director of HR",
"Hire Date": "2012-01-10"
}
}
var wrapper = $('#employees'),
container;
for (var key in employeesById) {
container = $('<div class="employee"></div>');
wrapper.append(container);
container.append('<span class="name">' + employeesById[key]["Name"] + ' ' + '</span>');
container.append('<span class="position">' + employeesById[key]['Position'] + ' ' + '</span>');
container.append('<span class="hireDate">' + employeesById[key]['Hire Date'] + ' ' + '</span>');
container.append('<span class="id">' + key + ' ' + '</span>');
}
function compare(a, b) {
if (a.last_nom < b.last_nom)
return -1;
if (a.last_nom > b.last_nom)
return 1;
return 0;
}
$("#search").on("keyup", function() {
var g = $(this).val().toLowerCase();
$(".employee").each(function() {
var s = $(this).text().toLowerCase();
$(this)[s.indexOf(g) !== -1 ? 'show' : 'hide']();
});
});
body {
font-family: Arial;
margin-bottom: 1000px;
}
.instructions {
font-family: Times New Roman;
width: 500px;
}
.controls {
margin-top: 20px;
margin-left: 12px;
margin-bottom: 12px;
}
.control {
padding-bottom: 4px;
}
.employees {
width: 300px;
margin-left: 12px;
}
.employee {
border: 1px solid black;
padding: 4px 4px 4px 4px;
margin-bottom: 8px;
}
.employee .name {
font-size: 14pt;
}
.employee .position {
display: block;
}
.employee .hireDate {
display: block;
font-size: 10pt;
}
.employee .id {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<hr/>
<div class="controls">
<div class="control">Search:
<input type="text" name="search" id="search" />
</div>
<div class="control">Sort:
<select name="sort" id="sort" onchange="myFunction()">
<option name="Name">Name</option>
<option name="ID">ID</option>
</select>
</div>
</div>
<div id="employees">
</div>
关于javascript - 使用 jQuery 进行搜索后,搜索栏就会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036678/
我使用 Runtime.getRuntime().exec 来运行 perl 程序。现在我想在执行过程中显示百分比进度条,然后在perl程序执行完成后,它应该关闭进度条。我该怎么做? Runtime.
我已广泛搜索该网站,但找不到答案。请我是新手,我需要你的帮助。 我想创建一个固定的导航栏,但每次在我的 CSS 样式表中放置一个固定的规则时,导航栏都会消失。这是我的 html 代码:
Here's a nice jsFiddle illustrating the problem 我正在尝试创建一个标题栏元素... 永远只有 1 行高 在右上角有始终存在的控件 在左上角有一个标题,如
int fd = open(JOYSTICK_NAME, O_RDONLY | O_NONBLOCK); O_RDONLY 和 O_NONBLOCK 之间的栏是什么意思?我在 OpenGL/GLUT
我注意到我的网页在页脚之后和页面底部有一个空白/栏: 我试图通过使用 Chrome 中的 inspect 元素来查找此问题的原因,但找不到任何内容。我正在使用 Boostrap,这是我的页脚 HTML
我已经对这个主题进行了一些研究,但我找不到完整的解决方案,因此,我一步一步地尝试和错误,我终于找到了如何实现这些结果:透明或彩色Actionbar 和 Statusbar。请参阅下面的答案。 最佳答案
Highcharts 教程中的经典示例是: $(function () { $('#container').highcharts({ chart: { type: 'bar'
注意 :这与 iOS 13 中使用的新默认模态呈现样式无关。 我有一个奇怪的问题,显示模态 UINavigationController . 考虑一个 UIViewController位于 UINav
我需要帮助了解如何在加载页面时隐藏 iPad 地址栏或顶部的整个地址栏。 我正在开发基于在线客户管理系统的系统,需要隐藏 iPad 地址栏,因为它在查看网站时会占用大量空间。 问候涡流 已经尝试了以下
我在向栏中添加文本时遇到了一些问题。我想在栏上方显示值,但我无法向每个栏添加文本。 现在我的dom结构是: g rect rect rect 我想要什么: g g.bar rect
我有 ListView ,数据将从数据表显示在 ListView 中像这样我已经完成了但是我在数据行 6 有问题 dt = classes.xxxxx.GetData(sql,
我使用 opposite 属性将 xAxis 向右移动。条形图怎么可能也从右侧开始? 谢谢! Highcharts.chart('absoluteInterruptions', { chart:
我得到了这张图片,我想在我的导航 Controller 中使用它: 我是这样设置的(根据 this 问题的建议): UINavigationBar *theBar = self.navigationC
这个问题在这里已经有了答案: How to disable breadcrumbs in Eclipse (11 个答案) 关闭 9 年前。 有谁知道如何删除我在 Eclipse 中用红色圈出的栏?
总而言之,我的应用程序中有一个浏览器,我希望它只启动 5 个网站,仅此而已。有没有办法让我的浏览器通过设置自定义字符串来启动 5 个网站,例如 if {用户键入此字符串} 转到该网站,然后 else
我想在我的应用程序中实现一个进度条。发生的过程是应用程序将一个目录复制到 iOS 文档目录中。通常需要 7-10 秒(iPhone 4 测试)。我对进度条的理解是你在事情发生时更新进度条。但是根据目录
我正在寻找一种创建交互式子弹图的方法,它允许用户单击图中的任意位置并设置一个标记,然后根据该标记所在的位置计算一些简单的值。例如,我希望它看起来类似于: http://www.usrecordings
我目前在一个网站上工作,我有一张人的照片。在图片的右侧,我想要名称和描述。名称应与描述具有不同的背景。我上传了一张它应该是什么样子的图片:http://www.tiikoni.com/tis/view
我将 div 栏设置为不滚动,因此它将始终显示在网站顶部。在这个栏内,我有另一个 div 框,里面有两个按钮,它们向右浮动,所以它们总是在右上角。 问题是我希望按钮居中于页面的右上角而不是右上角。相反
因此,我在我的网站中使用了一个选择栏。我试图在悬停时更改选项的背景颜色。此外,如果有人知道设置垂直 slider 样式的好方法,那就太棒了。 这是我正在尝试做的事情的 fiddle : http://
我是一名优秀的程序员,十分优秀!