1

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

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

我正在制作一个内联可编辑表格,我只想允许用户点击<td>带有 id 的 's。我怎样才能做到这一点,只允许<td>id 是可点击的?

编辑 - 添加了 HTML:

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

5 回答 5

4

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

$("td[id^=rowDate]").click(function() {
   // ...     
}) 
于 2012-08-31T22:39:24.777 回答
3

您不能有两个名称相同的 ID,因此您可能需要使用类。你可以做

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

或者只为课程编写。

$('.edittext').click(function(){
do soemthing }
于 2012-08-31T22:35:58.637 回答
3

您可以使用

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

这只会被 td 与 id 调用

于 2012-08-31T22:36:59.333 回答
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');
});

演示 ​</p>

于 2012-08-31T22:41:10.827 回答
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>
于 2012-08-31T22:40:15.053 回答