所以我想要做的就是删除所有HTML表格标签元素,只保留链接标签。
<table border="0" cellpadding="1" cellspacing="0">
<tbody><tr valign="top"><td class="headlines">•</td><td class="headlines"><a href="" target="_top">SOME TEXT</a></td></tr>
</tbody></table>
将链接的文本包装到段落标记中的div或位置会很好。
有什么想法吗?
答案 0 :(得分:4)
有关新问题的解决方案,请参阅@T.J.'s answer。
用 - 喘气,震惊恐怖 - vanilla JavaScript来做!
var $headlines = $('.headlines'),
headlineText = $headlines.text(),
replaceText = headlineText.replace(/•/g, '');
$headlines.text(replaceText);
或者,语法略显性感:
$('.headlines').text(function (index, text)
{
return text.replace(/•/g, '');
});
答案 1 :(得分:1)
更新:哇,你完全通过编辑更改了问题。完全。
您可以在新问题中处理表格,将表格中包含的所有链接放入一个新段落中,如下所示:
$('table').each(function() {
var $thisTable = $(this),
links = $thisTable.find('a'),
newPara;
$thisTable.parent().append($("<p>").append(links));
$thisTable.remove();
});
或者,如果您希望每个链接都在自己的段落中(可能更好):
$('table').each(function() {
var $thisTable = $(this),
$parent = $thisTable.parent(),
links = $thisTable.find('a');
links.each(function() {
$parent.append($("<p>").append(this));
});
$thisTable.remove();
});
原始答案,现在无关紧要:
您可以使用empty
:
$(".headlines").empty();
...完全清空匹配元素。
或者如果您想在开头有选择地删除只是 •
,您可以使用html
并传入一个函数:
$(".headlines").html(function(index, html) {
if (html.substring(0, 1) === "•") {
html = html.substring(1);
}
return html;
});
或许*
及其后面的任何空格:
$(".headlines").html(function(index, html) {
return html.replace(/^• */, ''); // A `•` at start of string
// followed by zero or more spaces
});
...但是如果headlines
元素将具有复杂的嵌套结构,并且在它们上面有事件处理程序等,那么不要执行后面的任何一个(尽管它对基本单元格来说很好)。 / p>
答案 2 :(得分:0)
您的代码有效,但会删除整个元素。 empty
将删除所有子节点,包括文本或嵌套元素。
如果您只想删除包含点的元素中的所有文本,请执行以下操作:
$(":contains('•')").text();
如果你只是想摆脱这些点并留下其他一切:
$(":contains('•')").each(function() {
var text = $(this).text();
text.replace(/•/gi, ""))
$(this).text(text);
});
答案 3 :(得分:0)
$("<div>"+$('table a').text()+"</div>").insertAfter('#whereveryouwant");
答案 4 :(得分:0)
var $myTable = $('#myTableId'); //Add id="myTableId" to the table you want select
$myTable.replaceWith($myTable.children('a').wrapAll('<div></div>'));
答案 5 :(得分:0)
$('.headlines a').parent().html();