我试过使用没有血腥运气的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');
所以我尝试了很多代码,这就是我到目前为止所做的,可能不对,但是我已经对它进行了一段时间的黑客攻击。
答案 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";