You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从DataTable选中行的input元素中提取value值?

如何从DataTable选中行的input HTML字符串中提取value属性值?

你可以通过解析HTML字符串的方式提取input的value值,以下是几种可行方案:

方案1:使用jQuery解析(最简便)

利用jQuery将HTML字符串转换为DOM对象,直接调用val()方法获取value:

var selectedRows = $.map(table.rows('.selected').data(), function(item) {
  return $(item[0]).val();
});

方案2:原生DOM解析(不依赖jQuery)

创建临时DOM元素承载HTML字符串,再通过原生方法获取value:

var selectedRows = $.map(table.rows('.selected').data(), function(item) {
  const tempEl = document.createElement('div');
  tempEl.innerHTML = item[0];
  return tempEl.querySelector('input[name="RowId"]').value;
});

方案3:正则表达式(适合固定格式场景)

如果能确保input的HTML格式稳定,也可以用正则匹配value值:

var selectedRows = $.map(table.rows('.selected').data(), function(item) {
  const valueMatch = item[0].match(/value="(\d+)"/);
  return valueMatch ? valueMatch[1] : null;
});

完整修改后的代码示例

var table = $('#tbl').DataTable();

$('#tbl tbody').on('click', 'tr', function() {
  $(this).toggleClass('selected');
});

$('#button').click(function(e) {
  e.preventDefault();

  var selectedRows = $.map(table.rows('.selected').data(), function(item) {
    return $(item[0]).val();
  });

  console.log(selectedRows); // 输出结果为["1", "2", "3"...]
  alert(table.rows('.selected').data().length + ' row(s) selected');
});

注意事项

  • 优先选择方案1或2,因为DOM解析能适配HTML结构的微小变化,比正则表达式更可靠;
  • 方案3中的正则仅匹配数字类型的value,若value包含其他字符,需要调整正则表达式(比如改为value="([^"]+)")。

内容的提问来源于stack exchange,提问作者user57358

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:32:25