0

我知道这是一个非常简单的问题,但是每次偶数触发时,我都需要用变量替换段落中的这段文本。

标记看起来像这样

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
#container {width:100%; text-align:center; }
#heading {width:100%; text-align:center; }
</style>
</head>

<div id="heading">
<h1>hello</h1> 
</div> 
<body>
<div id="container">
<textarea name="mytextarea" cols="60" rows="40"></textarea>
</div>
</body>
</html>

我需要的是它在标签中说“你好”的地方,它是一个变量,可以被我将生成的字符串替换。

4

2 回答 2

1

您可以创建一个看起来像这样的函数。

function replaceTitle (replaceText) {
    document.getElementById("heading").getElementsByTagName("h1")[0].innerHTML = replaceText;
}

如果您使用的是jQuery,它可能看起来更像这样。

function replaceTitle (replaceText) {
    $("#heading h1").html(replaceText);
}

然后你像这样调用函数

replaceText(yourVariable);

给你的<h1>标签一个 id 或一个类可能会更好,这样你就可以直接引用它,但我会假设你有充分的理由不这样做。

于 2012-07-19T11:03:29.313 回答
0

一个关于如何让简单的事情变得复杂的例子:)

javascript:

// simple way:
function replace_text(text) {
    var heading = document.getElementById('heading');
    heading.innerHTML = '<h1>' + text + '</h1>';
}

// complicated way:
function replace_text2(text) {
    var heading = document.getElementById('heading');
    var node = heading.childNodes[0];
    while ( node && node.nodeType!=1 && node.tagName!='H1' ){
        //console.log(node.nodeType,node);
        node = node.nextSibling;
    }
    if (node) {
        node.replaceChild(document.createTextNode(text),node.childNodes[0]);
    }
}

html:

<input type="button" onclick="replace_text('HELLO 1!');" value="Replace 1st text" />
<input type="button" onclick="replace_text2('HELLO 2!');" value="Replace 2nd text" />

脚本在这里

于 2012-07-19T12:15:01.560 回答