+ -
当前位置:首页 → 问答吧 → jQuery 筛选name的问题

jQuery 筛选name的问题

时间:2011-10-23

来源:互联网

一个项目,要求点击第一排的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) 可以得到值,迷惑中...... 高手不吝指教!!!

作者: yuanjianbo   发布时间: 2011-10-23

楼主试试
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=" + name + "]").show();
    })

作者: liangws   发布时间: 2011-10-24

引用 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=" +……

楼上正解

作者: liujiebest   发布时间: 2011-10-24

高手,佩服!谢谢了!

作者: yuanjianbo   发布时间: 2011-10-24

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

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

$(function() {
$("#class1").delegate("dd", "click", function() {
$("#class2 dd[name="+$(this).attr("name")+"]").show().siblings("dd[name!="+$(this).attr("name")+"]").hide();
});
});

作者: yuanjianbo   发布时间: 2011-10-24