jQuery 筛选name的问题

kevinecho 2011-10-23 08:58:42
一个项目,要求点击第一排的dd@name 获取第二排与之name相同的所有dd 其余的dd 隐藏,

不知道什么地方不对,各位高手看看 指点一下

<div id="filter">
<dl id="class1"><dt>选项1</dt>
<dd name="aa">选项</dd><dd name ="bb">选项</dd><dd name ="cc">选项</dd></dl>
<dl id="class2"><dt>选项2</dt>
<dd name="aa">选项2</dd><dd name ="aa">选项22</dd><dd name ="aa">选项222</dd>
<dd name ="bb">选项2</dd><dd name ="bb">选项22</dd><dd name ="bb">选项222</dd>
<dd name="cc">选项2</dd><dd name ="cc">选项22</dd><dd name ="cc">选项222</dd>
</dl>

</div>

JS:

$(document).ready(function () {
$("dl#class1 dd").click(function(){

$("dl#class2 dd").hide()
.find("dd[name*='this.name']").show();
});

怀疑是 this.name 赋值的问题 但是 alert(this.name) 可以得到值,迷惑中...... 高手不吝指教!!!
...全文
489 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinecho 2011-10-24
  • 打赏
  • 举报
回复
“老衲”同志的是对的 符合我的简洁的要求 看来我的分析还是对的 this.name的赋值问题

1楼的也是对的,是我的一个id写错了,窘~~

十分感谢大家的帮助
_懒猫 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ycmjh2010 的回复:]

1楼绕的,看老衲的
$('#class1 dd').click(function(){
$('#class2 dd').hide().filter('[name='+$(this).attr('name')+']').show()
})
[/Quote]
老衲很强啊
光曰不日 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuanjianbo 的回复:]

试了一下 楼上的如果是静态数据是对的 引入数据库数据后无效

blueidea 那边有人回答的是正确的 贴出来 大家看一下

$(function() {
$("#class1").delegate("dd", "click", function() {
$("#class2 dd[name="+$(this).attr("name")+"]").show().siblings("……
[/Quote]和引不引入数据库数据无关!都是前端表现。
光曰不日 2011-10-24
  • 打赏
  • 举报
回复
1楼绕的,看老衲的
$('#class1 dd').click(function(){
$('#class2 dd').hide().filter('[name='+$(this).attr('name')+']').show()
})
kevinecho 2011-10-24
  • 打赏
  • 举报
回复
试了一下 楼上的如果是静态数据是对的 引入数据库数据后无效

blueidea 那边有人回答的是正确的 贴出来 大家看一下

$(function() {
$("#class1").delegate("dd", "click", function() {
$("#class2 dd[name="+$(this).attr("name")+"]").show().siblings("dd[name!="+$(this).attr("name")+"]").hide();
});
});
kevinecho 2011-10-24
  • 打赏
  • 举报
回复
高手,佩服!谢谢了!
_懒猫 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangws 的回复:]

楼主试试
JScript code

var dl2 = $("#class2");
$("#class1").click(function(e){
var name = $(e.target).attr("name");
dl2.find("dd[name!=" + name + "]").hide().end().find("dd[name=" +……
[/Quote]
楼上正解
liangws 2011-10-24
  • 打赏
  • 举报
回复
楼主试试

var dl2 = $("#class2");
$("#class1").click(function(e){
var name = $(e.target).attr("name");
dl2.find("dd[name!=" + name + "]").hide().end().find("dd[name=" + name + "]").show();
})

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧