Javascript/Jquery:从字符串中获取元素
Javascript/ Jquery: Get element from string
我有一个可编辑的div,里面有HTML。当用户提交表单时,文本存储在一个变量中。我想从这个变量中删除一个属性,以及其中的任何内容
我试着给div中的HTML一个ID,并将.innerHTML设置为零,但仍然不起作用。
我的代码:
var table = document.getElementById("fileTable");
table.innerHTML = '';
这仍然返回完整的HTML:
<table id="fileTable" fileid="41" type="1" taskid="1" class="table table-striped clearfix" role="presentation" contenteditable="false">
<tbody class="files"><tr class="template-upload">
<td><span class="preview"><img src="http://i.imgur.com/L9yd8dE.gif" height="80" width="57"></span></td>
<td><p class="name">filename-1 2.pdf</p></td>
<td><p class="size">309074</p></td>
<td><a class="btn btn-sm red" href="#">Delete<i class="fa fa-exclamation"></i></a></td></tr>
</tbody></table>
此外,我尝试过使用jquery.remove()和.empty()但它仍然无法从可编辑的div中删除该表。
<div contentEditable=true id="commentPrivate" class="form-control todo-taskbody-taskdesc editableDiv" rows="4" data-ph="Type comment..."></div>
以下是pastebin中的更多代码:http://pastebin.com/sdif5paz
我们可以从指定的字符串中删除表标记和其中的任何内容吗?
您可以使用substr()
直接从字符串中删除表
var myString = "smth <table>asdasdasd</table>smth else";
var firstPart = myString.substr(0,myString.indexOf('<table>'));
var secondPart = myString.substr(myString.lastIndexOf('</table>')+8);
myString = firstPart + secondPart;
Fiddle
UPD并且为了从DOM中删除表,我会使用jQuery方法之一:
$(document).ready(function(){
$('#tableId').remove();
})
或纯js:
var table = document.getElementById('tableId');
table.parentNode.removeChild(table);
删除表似乎对我来说还可以。如果你等待加载dom,你可以使用$(document).ready()或window.onload
jsfiddle
window.onload = function () {
var table = document.getElementById("fileTable");
table.innerHTML = 'I removed the table';
console.log(table);
}
阅读完整代码后,发现您缺少一个大括号:
<script type="text/javascript">
function privateComment(){
var file = 0;
var message = document.getElementById("commentPrivate").innerHTML;
if(message.indexOf("contenteditable") > -1){
var table = document.getElementById("fileTable");
var type = table.getAttribute("type");
var file_id = table.getAttribute("fileId");
var taskId = table.getAttribute("taskId");
table.innerHTML = '';
var string = string + '{"type": "' + type + '", "file_id": "' + file_id + '", "taskId": "' + taskId + '"}';
var file = 1;
} // <<< THIS IS NOT THE LAST BRACE
var taskId = document.getElementById('form-task-title').getAttribute('showing');
var button = document.getElementById("submit-private-comment");
alert(message);
} //<<ADD THIS BRACE .
</script>
相关文章:
- 如何在jQuery中获取元素的形式
- 通过id和class属性获取元素
- Javascript:Can't使用getElementById获取元素
- 使用jquery.html()获取元素本身的html
- 如何从iframe内部获取元素
- Javascript函数获取元素内容
- 使用模板后,使用Angular获取元素属性值
- 获取元素类名的部分
- 从JSON.parse获取元素
- 获取元素内部的缩写
- 在不引用文档的情况下使用AngularJS获取元素
- 如何获取元素's的title属性
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- Javascript获取元素背景图像,但消除了“;url()”;
- Javascript:按类获取元素,但跳过某个类
- 当display:none时,getElementById()无法获取元素
- 我的ID获取元素不起作用
- 如何获取元素:使用javascript和CORS悬停背景
- 能够获取元素长度,但不能获取内部 HTML
- 如何使用jQuery在模板kendo UI中获取元素类