2013-05-30 27 views
0

我有一個innerHTML的聲明如下:如何使用空格將URL和/或字符串發送到onclick函數?

newdiv.innerHTML = '<a href=\'#\' onclick=genGroups('+userid+',\''+coursename+'\','+url+')>'+coursename+'</a>'; 

我不能發送任何URL和/或字符串變量(例如coursename其具有在它的空間)通過的onclick。發生與空間有關的錯誤(incase of string)和url(需要一個')')。任何想法?

+3

爲什麼。你爲什麼這樣做? – Mathletics

+1

我需要生成一個課程名稱列表onclicking他們相應的組將在其他div生成。我實際上是加載第一個div與新的div(從數據庫調用動態創建)。它是一個彈出式模式,其中並排有三個div。任何想法?目前對JQuery不感興趣。 – MiNdFrEaK

+0

你能更精確嗎?你可能知道url不能包含空格(它們變成了%20)?如果那是你的意思?解釋更多,如果我錯了 – orustammanapov

回答

0

我認爲URL應該被引用,太...

和的onclick = 「...」(雙引號)將是很好

newdiv.innerHTML = '<a href=\'#\' onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>'; 
1

使用功能的方法添加點擊處理程序,而不是一個內嵌處理器:

newdiv.innerHTML = "<a href='#'>"+coursename+"</a>"; 

var a = newdiv.getElementsByTagName('a')[0]; 
a.addEventListener('click', function() { genGroups(userid, coursename, url); }); 

另外,還要注意使用不同形式的報價,這樣你就不必逃避嵌入式引號。

2

你可以很容易地用jQuery嘗試類似這樣的http://jsfiddle.net/gianlucaguarini/WSzCh/,它對你的應用來說更加乾淨和靈活。

var your_user_id = 1, 
    your_course_name = 'whatever', 
    your_url = 'nice url'; 

var genGroups = function(params){ 
    alert(params.userId); 
    alert(params.coursename); 
    alert(params.url); 
}; 
// create a new empty link 
var $myDiv = $('.myDiv'), 
    $newLink = $('<a>'); 

// to store your meta properties as html data 
$newLink.data({ 
    'userId':your_user_id, 
    'coursename':your_course_name, 
    'url':your_url 
}).text(your_course_name); 

// append the new link 
$myDiv.append($newLink); 


// bind the click event anywhere in your code 
$myDiv .on('click','a', function() { 
    var linkData = $(this).data(); 
    genGroups(linkData); 
}); 
0

您的報價有問題。試試這個:

newdiv.innerHTML = '<a href="#" onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>'; 

我建議你使用不顯眼的JS。您可以在a中存儲userid,coursename和url作爲數據,並綁定單擊事件。你甚至可以從主播中獲取coursename。

相關問題