关于jquery选择器的疑问

Ku_Andrew
  • 536

最近在做一个小项目,有个页面需要用JQ来动态生成input标签;生成的时候,我给每个的input标签附上相同的class和不同的id。
问题来了,获取input的value时:如果选择器这样写就获取不到内容,
$('input.change#1').val() ///返回 undefined
但是如果把.change和#1的顺序对调就可以获取到内容
$('input#1.change').val() //就能返回input里面的value
这是什么原因啊?

-----问题补充-----
下面是两个截图
请输入图片描述
请输入图片描述
是不是因为前面那个

标签写了id="1"

---相关HTML代码---

<tbody>
  <tr class="club" id="1">
    <td>
      <input name="id[]" class="id" type="checkbox" value="1">
    </td>
    <td class="1 name">
      <div class="col-xs-7">
        <input class="form-control input-sm changeClubName" id="1" value="一号社团">
      </div>
      <button type="button" class="btn btn-primary btn-sm pull-right changeSubmit"
      data-clubid="1">
        确定
      </button>
    </td>
    <td>
      0
    </td>
    <td>
      <a class="changeClub" id="一号社团" href="javascript:void(0);">
        修改
      </a>
      &nbsp;
      <a data-toggle="modal" data-target="#delClub" class="delete" id="1" href="javascript:void(0);">
        删除
      </a>
    </td>
  </tr>
  <tr class="club" id="13">
    <td>
      <input name="id[]" class="id" type="checkbox" value="13">
    </td>
    <td class="13 name">
      <div class="col-xs-7">
        <input class="form-control input-sm changeClubName" id="13" value="13">
      </div>
      <button type="button" class="btn btn-primary btn-sm pull-right changeSubmit"
      data-clubid="13">
        确定
      </button>
    </td>
    <td>
      0
    </td>
    <td>
      <a class="changeClub" id="13" href="javascript:void(0);">
        修改
      </a>
      &nbsp;
      <a data-toggle="modal" data-target="#delClub" class="delete" id="13" href="javascript:void(0);">
        删除
      </a>
    </td>
  </tr>
</tbody>

其中的input是用.html()生成出来的

回复
阅读 4k
5 个回答

我只是来默默的支持下我徒弟 @转啊转 的答案的。我把题主的页面代码复制下来然后加载了jQuery 2.0.3之后的效果如图所示:

无图无真相

重复ID搞出来的问题吧

额,似乎 class 名,还有id 名不推荐用数字开头叭。
在本身错误的使用方法上找原因不好。

把名字规范起来就不会有这个问题了。

捞鱼的转阿转
  • 1.9k

只需按照Id选择就能满足需求,既然你说不行。那按照你的思路走一边好了。

请输入图片描述

沼沼同学
  • -3
新手上路,请多包涵
alert($('input.hhi#1').val());
    }
</script>
</head>

<body onLoad="fun1onload()">
<input type="hidden" value="你好吗" class="hid hid2 hhi" id="1">

为什么我写的都可以呢?我

alert($('input.hid#1').val())
alert($('input#1.hid').val())
alert($('input.hid2#1').val())
alert($('input#1.hid2').val())

都可以出来啊
我用的火狐浏览器。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏