javascript - 我怎样才能提取
标签在表格单元格中的内容?
问题描述
首先,我的表是这样的:
<table class="table table-bordered table-sm table-hover">
<thead>
<tr class="thead-light border">
<th>name</th>
<th>difficulty</th>
<th>goal</th>
<th>recommended</th>
<th>return</th>
</tr>
</thead>
<tbody id="chosen">
<tr>
<td>aaa</td>
<td>1</td>
<td>50</td>
<td>
<p>recommended1</p>
<p>recommended2</p>
<p>recommended3</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
<tr>
<td>bbb</td>
<td>2</td>
<td>100</td>
<td>
<p>recommended1</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
</tbody>
</table>
“推荐”列可以有 1~3 个 <p> 标签。而且,我想做的是,在每个 <p> 标签之间提取字符串,然后将其用作 id 标签。像这样:
如果我提取了“recommended1”、“recommended2”,我想这样做,例如:
$('#recommended1').data('maphilight', data).trigger('alwaysOn.maphilight');
$('#recommended2').data('maphilight', data).trigger('alwaysOn.maphilight');
但问题是,提取的字符串像这样相互连接>推荐1推荐2推荐3
我的代码是:
$("#chosen").on("click", "tr td:not(:last-child)", function() {
var currentRow=$(this).closest("tr");
var col3=currentRow.find("td:eq(3)").find("p").text();
var data=col3
alert(data);
});
提醒检查。
Q1。如何分离提取的字符串?
Q2。如何使用提取的字符串作为标签?
解决方案
你可以只使用 js 来达到你的目标,简单地使用querySelectorAll
find allp
然后你可以以多种方式使用它,在我的示例中,我使用forEach
withconsole.log
来打印每一个。
var table = document.getElementById('table'); //select table
var AllP = table.querySelectorAll('p'); //select all p
AllP.forEach(function(p) {
console.log(p); // all tag
console.log(p.innerHTML); //just text
console.log(' '); // space for better understanding
});
/*
You print one of the array like:
console.log(p[0]); choise index based on your choise
*/
<table class="table table-bordered table-sm table-hover" id='table'>
<thead>
<tr class="thead-light border">
<th>name</th>
<th>difficulty</th>
<th>goal</th>
<th>recommended</th>
<th>return</th>
</tr>
</thead>
<tbody id="chosen">
<tr>
<td>aaa</td>
<td>1</td>
<td>50</td>
<td>
<p>recommended1</p>
<p>recommended2</p>
<p>recommended3</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
<tr>
<td>bbb</td>
<td>2</td>
<td>100</td>
<td>
<p>recommended1</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
</tbody>
</table>
但是,如果您想使用jquery:
var AllP = $('#table').find('p'); //select all p
$(AllP).each(function() {
console.log($(this).text()); //just text
console.log(' '); // space for better understanding
});
/*
You print one of the array like:
console.log(p[0]); choise index based on your choise
*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table table-bordered table-sm table-hover" id='table'>
<thead>
<tr class="thead-light border">
<th>name</th>
<th>difficulty</th>
<th>goal</th>
<th>recommended</th>
<th>return</th>
</tr>
</thead>
<tbody id="chosen">
<tr>
<td>aaa</td>
<td>1</td>
<td>50</td>
<td>
<p>recommended1</p>
<p>recommended2</p>
<p>recommended3</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
<tr>
<td>bbb</td>
<td>2</td>
<td>100</td>
<td>
<p>recommended1</p>
</td>
<td>
<p>return1</p>
</td>
</tr>
</tbody>
</table>
推荐阅读
- ubuntu-16.04 - 在 cloud-init 中创建 systemd 单元并启用它
- linux - 如何使用 Docker 简化构建过程
- matlab - 绘制 TX/RX 与接收信号强度之间的分离距离影响的图表
- android - 当我使用 WindowManager.LayoutParams.TYPE_SYSTEM_ERROR 覆盖阻止状态栏扩展时,无法在 android 中设置屏幕亮度
- javascript - 从 React 数组中删除一个对象
- apache-spark - 无法在运行时成功从 RDD 转换为 Dataset
- android - 从 Firebase 数据库中检索数据列表,并将其编写为电子邮件的消息
- google-app-engine - appengine 应用部署 - 错误:必须提供至少一个处理程序
- javascript - TypeError:无法读取未定义的属性“uid”
- python - 即使环境已设置,也会出现 DefaultCredentialsError