由于jQuery不是我最好的技能组合,我需要一些帮助,因为我似乎找不到可以作为我的问题参考的帖子。
在一个表格中(class="shop_attributes"
),我想直接在<td>...</td>
单元格之后操作嵌入在下一个单元格(<th>Reference ID</th>
)内的段落部分中的字符串。
如何获取该字符串(29909,40887,51890,63388),以便我可以使用文本替换功能操作它(我想将它们转换为URL)?
其次,因为我可以在<th>Reference ID</th>
的同一个表中有多个行/单元格。如何使用参考ID处理所有可能的行(所以“29909,40887,51890,63388”和“255”)?
下面是一个非常简化的表格设置。实际上,表中会有更多的行(属性)。
<table class="shop_attributes">
<tbody>
<tr>
<th>Reference ID</th>
<td>
<p>29909, 40887, 51890, 63388</p>
</td>
</tr>
<tr>
<th>Attribute X</th>
<td>
<p>X</p>
</td>
</tr>
<tr>
<th>Reference ID</th>
<td>
<p>255</p>
</td>
</tr>
答案 0 :(得分:0)
如果您可以将一个班级分配到包含您想要引用的数字的<td>
或<p>
,那会更好,但如果这已经为某些人设定了原因是,您可以使用:contains()
选择器查找参考ID <th>
元素,然后循环搜索下一个单元格<p>
元素中的字符串:
var refCells = $('th:contains("Reference ID")');
refCells.each(function(){
var string = $(this).next('td').find('p').text();
console.log(string);
});
这是一个小提琴:http://jsfiddle.net/k6cuxesu/
答案 1 :(得分:0)
这样的事情怎么样?该演示使用:contains()
伪选择器和.html( fn )
来实现选择和操作。
$('.shop_attributes th:contains("Reference ID")')
.next('td').find('p').html(function(i,html) {
return html.replace(/(\d+)/g, '<a href="#$1">$1</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="shop_attributes">
<tbody>
<tr>
<th>Reference ID</th>
<td>
<p>29909, 40887, 51890, 63388</p>
</td>
</tr>
<tr>
<th>Attribute X</th>
<td>
<p>X</p>
</td>
</tr>
<tr>
<th>Reference ID</th>
<td>
<p>255</p>
</td>
</tr>
<tr>
<th>Reference ID</th>
<td>
<p>129909, 140887, 151890, 163388</p>
</td>
</tr>
<tr>
<th>Attribute X</th>
<td>
<p>X</p>
</td>
</tr>
<tr>
<th>Reference ID</th>
<td>
<p>255</p>
</td>
</tr>
</tbody>
</table>