我有一个以表格行标记<tr>...</tr>
开头和结尾的字符串。其中有多个<td>
,其格式为:
<td class="someClass">TextIWant TextI Do NOtWant</td><td><img src='green.png'></td>
<td class="someClass">TextIWant TextI Do NOtWant</td><td><img src='blue.png'></td>
我正在寻找的是,查看color.png,并在td中添加一个类,并修剪td中的一些文本。最终输出应该是这样的:
<td class="someClass green">TextIWant</td>
<td class="someClass blue">TextIWant</td>
如何使用正则表达式执行此操作?
答案 0 :(得分:2)
您可能需要提供有关您需要执行的操作的更多详细信息,但最佳操作方法是使用DOM解析器,JavaScript内置一个非常好的(IE8-不受支持)。< / p>
// Select all odd `td` nodes and iterate over them
Array.prototype.forEach.call(document.querySelectorAll("td:nth-child(odd)"),
function (elem) {
// Get the immediately following sibling (with the img)
var imgTd = elem.nextSibling;
// Get the color from the <img>
elem.className += ' ' + imgTd.querySelector("img").getAttribute("src")
.replace('.png', '');
// Remove the sibling
imgTd.parentNode.removeChild(imgTd);
// Update the initial elements text to remove the undesired text
elem.textContent = elem.textContent.replace("TextI Do NOtWant", "");
});
答案 1 :(得分:0)
我使用jquery执行此操作,例如:
var td;
var img;
var color;
$('img').each(function(){
img=$(this);
td = img.closest('td').prev();
color = img.attr('src').split('.')[0]
td.html('the image is '+color+'.png').addClass(color);
});