我在another question上找到了此代码,但我不确定如何使用它:
var text = document.getElementById("text").innerHTML; text = text.replace(/"z"/g, function(n){ return ++n }); document.write(text);这正是我需要的,但我不知道如何将数字传递给函数。基本上,我有一个大的csv(逗号分隔)项目列表,需要查找每次出现的 “z” ,并将其替换为加1的数字。代码在这里,但我还不知道如何使用它。
我放置了我的文本女巫需要在ID为 text 的div中替换。有什么想法吗?
答案 0 :(得分:2)
在该代码之前定义变量n:
var n = 0;
从函数中删除n参数,所以你有
function(){ return ++n });
n然后引用您定义的变量,函数不需要参数。
参数n是您引用的问题中的匹配文本。在这种情况下,该文本是无关紧要的,因为它始终是z。
document.write通常不是一个好主意。最好通过为您选择的元素分配innerHTML来替换它。
答案 1 :(得分:0)
传递给变量n
中的函数的值是在字符串中找到的值。这是你引用的问题中的一个数字,但这里是文本(字母'z')。而不是使用找到的文本,您只需创建一个全局变量并使用它:
var text = document.getElementById("text").innerHTML;
var num = 0;
text = text.replace(/z/g, function(n){ return ++num });
document.write(text);
(另请注意,您需要删除“z”字符周围的引号。)
答案 2 :(得分:0)
如果我正确阅读了代码。它从内容html中获取id = text的单个元素。
例如下面的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”至少应该是非常独特的。
答案 3 :(得分:0)
您需要修复要替换文本的元素的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();">