试图替换Div的内容,没有运气

时间:2010-05-24 16:58:43

标签: php html regex dom

我试过使用没有血腥运气的Dom模型,getElementByID对我来说不起作用。

我不愿意使用正则表达式但不知道还能做什么。

我们的想法是将<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');

所以我尝试了很多代码,这就是我到目前为止所做的,可能不对,但是我已经对它进行了一段时间的黑客攻击。

4 个答案:

答案 0 :(得分:2)

你是对的:getElementByID不起作用。

请尝试使用getElementById()。 Javascript区分大小写。

答案 1 :(得分: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>

答案 2 :(得分:0)

好吧我认为$content是一个片段?那么这可能就是你所需要的:

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

答案 3 :(得分:-1)

试试这个..

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