2017-12-22 18 views
0

나는 CRM (Netsuite)에 의해 자동 생성 된 웹 페이지를 가지고 있으며 상당한 양의 페이지에서 생성 된 HTML을 제어하지 않습니다. 개체를 같은 행에서 위 또는 아래의 행에 렌더링 할 수 있도록 닫고 열기 태그를 몇 개 제거하고 싶습니다.Javascript로 끝 HTML 태그를 제거 하시겠습니까?

</tr></tbody></table></td> 
</tr> 
<tr valign="top"> 
<td width="100%"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr> 

내가 가진 문제는 모든 버튼이 실패하는 원인이 다음과 같은 휴식을 페이지의 형태를하고 있다는 것입니다 :

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
    var bodyHtml = document.getElementById('content_area').outerHTML; 
    bodyHtml = bodyHtml.replace('</tr></tbody></table></td>\n</tr>\n<tr 
     valign="top">\n<td width="100%"><table border="0" cellpadding="0" 
     cellspacing="0" width="100%"><tbody><tr>','<!-- worked -->'); 
    document.getElementById('content_area').outerHTML = bodyHtml; 
    }); 
</script> 

것은 아무튼 자바 스크립트를 통해 HTML 태그를 제거하는 또 다른 방법이 있나요 나머지 돔을 형성하지 않습니까?

+4

실제 마크 업을 수정하는 대신 요소를 이동하여 DOM을 수정하는 것이 더 편할 것입니다. – user184994

+0

그래, 어떻게 할 수 있습니까? 이 전

내용 1
내용이
이 있다고 가정하자. 당신은 내가 다음에 결국 두 번째 을 이동하려고 제안된다 :
내용 1 내용이
? –

+0

예, 저는 – user184994

답변

1

다음 코드는 귀하의 코멘트에서 예를 들자면, 그리고주의 할 점의 content 2td 직후 content 1td

let contentOne = document.querySelector("table:nth-of-type(1) tr td"); 
 

 
let contentTwo = document.querySelector("table:nth-of-type(2) tr td"); 
 

 
contentOne.insertAdjacentElement('afterend', contentTwo);
tr td { 
 
    border: 1px solid black 
 
}
<table> 
 
    <tr> 
 
    <td>content 1</td> 
 
    </tr> 
 
</table> 
 
<table> 
 
    <tr> 
 
    <td>content 2</td> 
 
    </tr> 
 
</table>

커플을 추가합니다, 당신은을 변경할 수 있습니다 셀렉터. 가능한 경우 ID를 사용하십시오.

둘째, 수행 할 때 빈 테이블/행을 지울 수 있습니다.

+0

이 매력처럼 작동하는 예를 보여주는 답변을 만들었습니다! (사용 ID, 그 덕분에) –