[半吊子码农] 求个筛选的 JS 可好

2014-11-08 09:17:56 +08:00
 YAFEIML
比如是这个样子的一个,,列表

按钮1 按钮2 按钮3 按钮4
<li>AAAAAA888AAAAAAA</li>
<li>AAAAAA666AAAAAAA</li>
<li>AAAAAA555AAAAAAA</li>
<li>AAAAAA333AAAAAAA</li>

比如点击按钮1,只显示包含888的li,以此类推,li标签可以ID=。

这个、那个,表达可还清楚?
2872 次点击
所在节点    问与答
35 条回复
abelyao
2014-11-08 09:34:13 +08:00
就按 jQuery 来举个例子吧:
当按钮的点击事件触发的时候,取得它在同辈同类元素中的索引位置(index);
然后再 hide 所有 li,然后 li[index].show() (仅思路,不是正确语法)把对应的那个 li 显示出来;
abelyao
2014-11-08 09:35:07 +08:00
原来上次问 PHP 提取匹配的问题也是你… /t/141010
Yokira
2014-11-08 09:39:30 +08:00
可以在CSS里面加2个class,分别设置display为block和none。想让哪个li显示就给它加个block的class,其他的都加none的class就好了吧。
ChiChou
2014-11-08 12:25:51 +08:00
可以考虑先把数据序列化成 json;结合 underscore 的数组方法(如 map, filter 等)生成一个数组的拷贝,再用 underscore 的 template 功能渲染到页面上。

Angular 之类大体是这个思路,代码写起来要更清爽一些。楼主要是刚入门,建议 underscore 的方案。
kxxoling
2014-11-08 12:41:59 +08:00
前段时间用 Avalon 双向绑定做过一个类似的,大概也是先 json 化数据,循环输出 li 元素,再给 li 加上 ms-if="chosen_text in json.content_text" 过滤实现的(Coffee 写多了,不会写JS了 (/w`\\)
feiyuanqiu
2014-11-08 13:49:29 +08:00
你们给楼主说那么多高大上的他也不会弄...我就直接贴代码了
<iframe width="100%" height="300" src="http://jsfiddle.net/zoxhxow4/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
grzhan
2014-11-08 13:51:04 +08:00
$(parent_div).on('click', 'button', function(){
var index = $(this).index();
$('li').hide().eq(index).show();
});
YAFEIML
2014-11-08 13:57:47 +08:00
@feiyuanqiu 对呀对呀
YAFEIML
2014-11-08 13:58:09 +08:00
@abelyao 好惭愧。。
YAFEIML
2014-11-08 13:58:29 +08:00
@Yokira 求JS
YAFEIML
2014-11-08 13:58:40 +08:00
YAFEIML
2014-11-08 13:59:41 +08:00
@grzhan 先谢谢,明天测试
khowarizmi
2014-11-08 15:24:02 +08:00
angular filter search
官方有事例
klam
2014-11-08 17:24:57 +08:00
@khowarizmi
我也先想到angular,但是如果不用框架都写不出来,那引入angular纯粹是增加项目复杂度
sneezry
2014-11-08 17:48:49 +08:00
虽然可以写得更优雅,但我坚信这个是楼主想要的:

https://gist.github.com/Sneezry/237ef5b327df0fc2d23a
chemzqm
2014-11-08 18:04:01 +08:00
如果LZ在我们公司,直接一巴掌呼死😠
YAFEIML
2014-11-08 22:47:17 +08:00
@sneezry 在哪里在哪里
YAFEIML
2014-11-08 22:48:39 +08:00
@khowarizmi
@klam
框架的话,,,那个,,
YAFEIML
2014-11-08 22:49:43 +08:00
@chemzqm 我不在码代码公司。。。我是行政经理。。。
sneezry
2014-11-08 22:51:16 +08:00
@YAFEIML 晕,个别浏览器好像gist显示不出来……自行去掉一个冒号

https:://gist.github.com/Sneezry/237ef5b327df0fc2d23a

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX