Javascript/Jquery:从字符串中获取元素

Javascript/ Jquery: Get element from string

本文关键字:获取 元素 字符串 Jquery Javascript      更新时间:2023-09-26

我有一个可编辑的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>