2010-05-24 3 views
1

필자는 운이없는 Dom 모델을 사용하려고 시도했지만 getElementByID는 나에게 전혀 도움이되지 않았습니다.Div의 내용을 바꾸려고 시도했습니다. 행운이 없었습니다.

정규식에 의지하지만 뭘해야할지 모르겠다.

아이디어는 <div id="content_div"> all sorts </div>을 새 <div id="content_div"> NEW ALL SORTS HERE </div>으로 바꾸고 문자열 앞 또는 뒤에있는 내용을 모두 유지하는 것입니다.

문자열은 부분적인 HTML 문자열이며보다 구체적으로 wordpress Posts DB입니다.

아이디어가 있으십니까?

업데이트 : 나는이 질문에 PHP라는 태그를 붙 였지만 PHP 솔루션만을 찾고 있다고 언급해야한다.

업데이트 : 코드 예제는

$content = ($wpdb->get_var("SELECT `post_content` FROM $wpdb->posts WHERE ID = {$article[post_id]}")); 

$doc = new DOMDocument(); 
$doc->validateOnParse = true; 
$doc->loadHTMLFile($content); 
$element = $doc->getElementById('div_to_edit'); 

그래서 필자는 많은 코드를 시도하고 이것이 필자가 가지고 무엇을 지금까지, 아마 잘하지만, 필자가 지금 동안 작은 것이 해킹되지.

+0

getElementById를 사용하려면 적절한 DTD 또는 XSD가 문서에 연결되어 있어야합니다. - 마스터 문서에 Doctype이 있습니까? 또한 현재 어떻게 요소를 만들고 대체하려고합니까? – prodigitalson

+0

당신은 'getElementByID 나를 위해 정당한 일을 정교한 수 있습니다.' ? 그것이해야합니다. 프로토 타입이나 jquery와 같은 자바 스크립트 라이브러리를 사용하여 DOM에보다 쉽게 ​​액세스 할 수 있습니다. – oedo

+0

document.getElementById getElementById가있는 오타가 있습니다 –

답변

0

확인 내가 $content 가정입니까? 다음과 같이하면됩니다 :

$doc = new DOMDocument(); 
$doc->validateOnParse = true; 
$doc->loadHTMLFile('<html><body>' . $content . '</body></html>'); 
$element = $doc->getElementById('div_to_edit'); 
+0

이것은 스 니펫이므로 예제에서는 div 'div_to_edit'을 다른 div와 완전히 대체 한 다음 HTML을 저장할 수 있습니까? – bluedaniel

-1

이 시도 ..

var myDiv = document.getElementById('content_div'); 
myDiv.innerHTML = "NEW ALL SORTS HERE"; 
+0

저는 그가 PHP 측의 DOMDocument를 서버 측에서 사용하고 있다고 생각합니다 ... 자바 스크립트가 아닙니다. – prodigitalson

+0

나는 PHP의 답변을 찾고, 나는 그것을 PHP로 태그했지만 아마 미안뿐만 언급해야합니다. – bluedaniel

2

을 네 말이 맞아 : getElementByID이 작동하지 않습니다.

대신 getElementById()을 시도하십시오. Javascript는 대소 문자를 구분합니다.

0

가 유효한 웹 페이지가 있어야합니다 것을 기억하고 전체 HTML 트리 의미

<html> 
<head> 
<script type="text/javascript"> 
function changeText(div){ 
    document.getElementById(div).innerHTML = 'my new text'; 
} 
</script> 
</head> 
<body> 

--- your body --- 

<div id="DIV_ID">old text</div> 

<input type="button" onclick="chageText('DIV_ID');" value="Click me" /> 

</body> 
</html>

는 당신이에서 getElementById를 호출 할 필요가 기억을 : 코드 조각은

<script type="text/javascript"> // as from HTML5 you can use only <script> 
    document.getElementById("DIV_ID").innerHTML = 'my new text'; 
</script>
관련 문제