用jQuery获取动态id名称

时间:2012-08-31 22:30:57

标签: jquery

在这个jQuery脚本中,我想动态地获取$("#rowDate1")的id:

<script>
    $(function() {
       $("#rowDate1").click(function() {
           var thetext = $(this).html();
           $(this).html('<input type="text" name="edittext" id="edittext" value="'+thetext+'" />');
       });
    });
</script>

我正在制作内联可编辑表格,我只想让用户点击带有ID的<td>。我该怎么做才允许<td> ID可点击?

编辑 - HTML已添加:

<td id="rowDate1">09/10/12 - 09/14/12</td>

5 个答案:

答案 0 :(得分:3)

您不能拥有两个名称相同的ID,因此您可能希望使用类。你可以做到

$('#rowData').click(function() {
if($(this).attr("id") === "edittext"){
Do something }

或只为课程编写。

$('.edittext').click(function(){
do soemthing }

答案 1 :(得分:3)

你可以使用

  $("td[id]").click(function(){
    //Do something;
  });

仅对id为

的td调用此方法

答案 2 :(得分:3)

您可以使用attribute starts with选择器:

$("td[id^=rowDate]").click(function() {
   // ...     
}) 

答案 3 :(得分:3)

我会为每个可编辑的td分配一个课程,然后为每个课程分配一个点击事件,而不是通过ID来浏览您的项目:

HTML:

<table>
    <tr>
        <td class="clickable">1</td>
        <td class="clickable">2</td>
        <td class="clickable">3</td>
        <td class="clickable">4</td>
    </tr>
</table>​​​​​​​​​​​​​​​​​​​​​​​​​

JS:

$('.clickable').click(function(){
    $('.clickable').removeClass('active');
    $(this).addClass('active');
});

Demo

答案 4 :(得分:2)

您可以使用jQuery通过在选择器字符串中使用[id]来仅选择具有id的元素。

我为您创建了一个jsFiddle作为示例。

所以你的代码应该是这样的:

<script>
$(function() {
   $("td[id]").click(function() {
       var thetext = $(this).html();
       $(this).html('<input type="text" name="edittext" id="edittext" value="'+thetext+'" />');
   });
});
</script>