2011-03-12 59 views
2

我發現another question這段代碼中定義的函數,但我不知道如何使用它:
採用在變量

 
var text = document.getElementById("text").innerHTML; 
    text = text.replace(/"z"/g, 
      function(n){ return ++n }); 
document.write(text); 
這正是我需要的,但我不知道如何將數傳遞給函數。基本上,我有一個csv(逗號分隔)項目的大型列表,並且需要查找每個出現的 「z」並將其替換爲增加1的數字。代碼在這裏,但我只是不知道如何使用它。

我已經把我的文字女巫需要div中被替換文本的ID。有任何想法嗎?

+0

什麼是你想要替換的一些值,以及它們應該替換爲什麼? –

回答

2

定義的變量n的代碼之前:

var n = 0; 

取下函數參數n,所以你有

function(){ return ++n }); 

然後n個指所定義的變量和函數需要沒有參數。

參數n是您引用問題中的匹配文本。在這種情況下,該文本是不相關的,因爲它總是z。

document.write通常不是一個好主意。最好通過分配給你選擇的元素的innerHTML來替換它。

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」字)。

+0

引號是我要搜索的字符串的一部分。 – mindfullsilence

+0

好的,但除了代碼應該做你想要的東西你把報價回來 –

0

如果我正確閱讀代碼。它採用id = text的單個元素的內部html。

e.g低於跨度元件:

<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」至少應該是非常獨特的。

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();">