【问题标题】:How to select a classes with same name without using incremental id如何在不使用增量 ID 的情况下选择具有相同名称的类
【发布时间】:2022-01-27 06:49:39
【问题描述】:

还有其他方法可以选择同名但在不同表行中的类吗? 我使用 html class="className + id" 比在 jquery 中选择 $('.className'+id)... 一些代码 我想避免每次都使用 id。一些建议? 谢谢

HMTL
Data retrieved from the database
<tr class="row" id="<?= $id;?>"> <!-- id 1 -->
   <td  class="atyp<?= $id;?>"> <?= $v['atyp'];?> </td>

 <tr class="row" id="<?= $id;?>"> <!-- id 2 -->
   <td  class="atyp<?= $id;?>"> <?= $v['atyp'];?> </td>

JQUERY
<script>
$('.atyp'+id).val() // some code....
</script>

所以表有多个具有相同类名的行,我想避免使用 id 来选择特定的类

【问题讨论】:

  • 您实际上对这些行做了什么?例如,如果您尝试处理单击事件,则根本不需要 ID。 $('.atyp').on('click', function() { var elem = $(this) } 其中 elem 将等于单击的元素。
  • 是的,我明白了。我用行做多个功能。我使用选择器来更改航班的状态并更新到数据库(php>sql)。所以我需要 id 但我不想在每个 中使用 id 来查找特定的 id 我使用 'ad than $(this).closest('tr').attr('id') 在使用ajax之前获取id。 sql 完成后,我使用 jquery 使用 class+id 更新表中的数据

标签: php html jquery


【解决方案1】:

不要把&lt;?= $id;?&gt; 放到你的课堂上:

<tr class="row" id="<?= $id;?>"> <!-- id 1 -->
   <td  class="atyp atyp<?= $id;?>"> <?= $v['atyp'];?> </td>

 <tr class="row" id="<?= $id;?>"> <!-- id 2 -->
   <td  class="atyp atyp<?= $id;?>"> <?= $v['atyp'];?> </td>
$('.atyp').val()

【讨论】:

  • 是的,但它会选择所有具有相同类名的表行,我想选择一个特定的 类。例如。如何选择第一个 .atyp 类而不是第二个?
  • @Frenzye .row:first-child .atyp?
  • 也可以使用$('.row .atyp').eq(2)
  • 我不知道 TR 位于哪个位置,因为表格中有超过 50 行。我不认为这可能是解决方案。还是谢谢你
  • 代码自动执行,我不用在TD里手动选择类
【解决方案2】:

您不应为多个 HTML 元素指定相同的 ID。

您可以使用:first-of-type 选择器选择第一个 td

$("td:first-of-type")

通常您可以使用:nth-of-type 选择器。

$("td:nth-of-type(42)")

【讨论】:

  • 是的,但数据是从数据库中检索的,我不知道该函数将执行哪个表行,我使用的 ID 是好的,但我想避免这种情况.这就是为什么我的问题
  • 并且以我的方式正常工作,但我只是试图不为多个元素使用相同的 id
  • “好人”是什么意思?
  • 使用自动增量从 db 检索数据,它给出:id:1、id:2、id,3 等等,并在生成表行时。我必须访问一个所有 id 都具有相同名称的类。所以使用classname+id,但我想避免使用id
  • 我在上面添加了一张图片,也许它可以帮助更好地理解
猜你喜欢
相关资源
最近更新 更多
热门标签