我正在尝试删除以下html代码中的最后一个字符
<tbody><tr><tr>1<td><label for='depart1'>Department 1</label><br /><input type='text' id='depart1' class='textbox large' value='IT' /><br><label for='Courses_for_depart1'>Course for Department 1</label><br /><textarea id='Courses_for_depart1' class='textarea large' >OS</textarea></td></tr></tbody>
使用以下代码
addHtml.slice(0,-13);
它应该删除</tr></tbody>
但它只删除></tbody>
如何摆脱这种奇怪的行为。
addHtml=$("#departments").html();
<table id="departments">
<tbody><tr><tr>1<td><label for='depart1'>Department 1</label><br /><input type='text' id='depart1' class='textbox large' value='IT' /><br><label for='Courses_for_depart1'>Course for Department 1</label><br /><textarea id='Courses_for_depart1' class='textarea large' >OS</textarea></td></tr></tbody> </table>
上面的代码片段是复制形式的chrome视图源代码。
答案 0 :(得分:1)
答案 1 :(得分:1)
结束</tbody>
标记与</tr>
标记之间可能存在空格。尝试这样的事情:
addHtml = addHtml.trim();
var tbody = '</tbody>';
var t1 = addHtml.indexOf(tbody)+tbody.length;
var t2 = addHtml.lastIndexOf('</tr>');
var len = t1-t2;
var newString = addHtml.slice(0,-len); // This will have the string without the </tr> </tbody>
答案 2 :(得分:1)
作为一种可能更安全的替代方案,您可以分两步完成:
1)找到字符串中的最后一个</tbody>
,然后切片到它
2)找到剩余字符串中的最后一个</tr>
,然后切片到该字符串
String.prototype.lastIndexOf()