【发布时间】:2011-03-12 05:30:44
【问题描述】:
我在another question 上找到了这段代码,但不知道如何使用它:
我已将需要替换的文本放入 id 为 text 的 div 中。有什么想法吗?
【问题讨论】:
-
您要替换哪些值,应该用什么替换?
标签: javascript regex function variables replace
我在another question 上找到了这段代码,但不知道如何使用它:
我已将需要替换的文本放入 id 为 text 的 div 中。有什么想法吗?
【问题讨论】:
标签: javascript regex function variables replace
在该代码之前定义一个变量 n:
var n = 0;
从函数中删除 n 参数,所以你有
function(){ return ++n });
n 然后引用您定义的变量,该函数不需要参数。
参数 n 是您引用的问题中的匹配文本。在这种情况下,该文本无关紧要,因为它始终是 z。
document.write 通常不是一个好主意。最好通过分配给您选择的元素的 innerHTML 来替换它。
【讨论】:
在变量n 中传递给函数的值是在字符串中找到的值。这是您引用的问题中的一个数字,但这里是文本(字母“z”)。您可以创建一个全局变量并使用它,而不是使用找到的文本:
var text = document.getElementById("text").innerHTML;
var num = 0;
text = text.replace(/z/g, function(n){ return ++num });
document.write(text);
(另请注意,您需要去掉 'z' 字符周围的引号)。
【讨论】:
如果我正确阅读了代码。它从 id=text 的单个元素中获取内部 html。
例如下面的 span 元素:
<div id="text">
<span id="exzzzample">maybe CSV data is here z</span>
<span>More CSV Data z z z z</span>
</div>
然后它将每个 z 替换为一个不断增加的数字。这将是:
<span id="ex123ample">maybe CSV data is here 4</span>
<span>More CSV Data 5 6 7 8</span>
n 的起始值可以设置在此之外(代码开始之前的行):
var n = 567; // An arbitrary starting value.
请注意,根据我的示例,包含元素的属性中的任何“z”也将被替换。如果您决定以这种方式解决问题,“z”至少应该是非常独特的。
【讨论】:
您需要修复要替换文本的元素的 id。这有效:
<script>
var n = 0;
function replaceText() {
var text = document.getElementById("text").innerHTML;
text = text.replace(/"z"/g, function(){ return ++n });
// Changed to be placed here as suggested
document.getElementById("text").innerHTML = text;
}
</script>
<div id="text">
"6","z","AAA 101 - College 101:Student Experience","Introduces students to college culture and prepares...","1"
</div>
<input type="button" value="Find" onClick="replaceText();">
【讨论】: