2013-08-28 50 views
-1

最近怎麼樣..的JavaScript - 傳遞字符串(包含空格 - 從JSON)的功能

我試圖從JSON傳遞一個字符串結果,功能點擊一個按鈕,但我有一些問題的時候。

這裏是我的html代碼:

$(document).ready(function) { 
... 
    $.getJSON(url, {data...}, function result() { 
     var data = eval(result); 

     for (var i in data) { 
      $("body").append("<button onclick='ShowMore("+data[i].AREA+")'>"+data[i].AREA+</button>"); 
     } 

    }); 

}); 

function ShowMore(area){ 
    alert(area); 
} 

說明:

我有我的表中的一些公司的區域(系統,市場營銷,人力源等 - 與 '空間' 許多領域名稱)。

然後我有另一個表(EMPLOYESS)屬於每個區域。

但我需要將'AREAs NAME'傳遞給ShowMore(variable)函數,以便與該區域的所有成員進行一個列表(我不知道我是否能很好地解釋)。

當我按一下按鈕,我沒有任何警告..但是,當我改變的onclick = ''功能...(例如的onclick = 「+數據[I] .CODAREA +」)結果警報良好(11,14,19,20 ..)...

AREAS NAME上的空間是否有任何問題。

謝謝你的回答,問候

+0

你需要把'\''串,CODAREA可以工作,因爲編號不需要使用'\''來工作。嘗試ShowMore(\'「+ data [i] .AREA +」\')'' –

回答

1

試試這個

$("body").append("<button onclick='alert(\""+data[i].AREA+"\")'>"+data[i].AREA+"</button>"); 

你必須在data[i].AREA+</button>"); 一個錯字應data[i].AREA+"</button>");

也難逃 「」,這樣的數據[1]。 AREA將被讀作字符串

+0

WORKS !! Ty太過分了! –

+0

很高興它的工作,我沒有測試過那一個。 – roullie

0

關於您的代碼,您可以像下面一樣瀏覽...

$(document).ready(function) { 
... 
    $.getJSON(url, {data...}, function result() { 
     var data = JSON.parse(result); 
     var btn = ""; 

     for (var i in data) { 

      btn = "<button "; 
      btn += "onclick='ShowMore(\'"; 
      btn += data[i].AREA; 
      btn += "\')'>"; 
      btn += data[i].AREA; 
      btn += "</button>"; 

      $("body").append(btn); 
     } 

    }); 

}); 

function ShowMore(area){ 
    alert(area); 
} 

,但你可以用更快的方法做...

$(document).ready(function) { 
... 
    $.getJSON(url, {data...}, function result() { 
     var data = JSON.parse(result); 
     var btn; 

     for (var i in data) { 

     btn = document.createElement("button"); 
     btn.innerText = data[i].AREA; 

     document.body.appendChild(btn); 

     btn.addEventListener("click", function(){ 

       ShowMore(data[i].AREA); 

     }, true); 
     } 

    }); 

}); 

function ShowMore(area){ 
    alert(area); 
} 

如果數據是一個數組,我認爲這是更好地利用for(var i = 0; i < data.length; i++)

相關問題