如何使用注入WKWebView的Javascript替换DIV标记中只有class no id的文本

时间:2015-11-08 22:04:38

标签: javascript html swift wkwebview

我正在尝试使用JavaScript替换DIV标记中的某些文本,但标记只有一个类而不是ID。我试过了:

document.getElementByClassName('theClassName').innerHTML = 'text i want to insert in place of the existing text';

这没有用,我也尝试了上面但使用getElementById,但这也没有用。

更新:

我想我需要解释更多(对不起,我是一名n00b程序员)。我正在做的是使用Swift将网站加载到WKWebView中,然后在加载的页面末尾注入一个.JS文件。在那个.JS文件中,我正在尝试执行上述操作但没有成功。我可以找到一个DIV并隐藏它到目前为止,但能够替换文本是证明很难。

这是我上次尝试过的,但这也不起作用:

var classes = document.getElementsByClassName("title-random");
for(var i=0;i<classes.length; i++) {
    if(classes[i].innerHTML == "The old text") {          
        classes[i].innerHTML = "the new text";    
        break;                                          
    }
}

我甚至尝试过通用的“查找此文本”并替换代码但没有效果

1 个答案:

答案 0 :(得分:0)

如果你有几个div的类,你必须通过这样的数组访问:

<!DOCTYPE html>
<html>
<body>

<div class="example">First div element with class="example".</div>

<div class="example">Second div element with class="example".</div>

<p>Click the button to change the text of the first div element with class="example" (index 0).</p>

<button onclick="myFunction()">Try it</button>

<p><strong>Note:</strong> The getElementsByClassName() method is not supported in Internet Explorer 8 and earlier versions.</p>

<script>
function myFunction() {
    var x = document.getElementsByClassName("example");
    x[0].innerHTML = "Hello World!";
}
</script>

</body>
</html>