次のように宣言された innerHTML があります。
newdiv.innerHTML = '<a href=\'#\' onclick=genGroups('+userid+',\''+coursename+'\','+url+')>'+coursename+'</a>';
onclickを介して、URLおよび/または文字列変数(スペースを含むコース名など)を送信できません。スペース(文字列の場合)とurl(引数の後に')'が必要)に関するエラーが発生します。何か案が?
次のように宣言された innerHTML があります。
newdiv.innerHTML = '<a href=\'#\' onclick=genGroups('+userid+',\''+coursename+'\','+url+')>'+coursename+'</a>';
onclickを介して、URLおよび/または文字列変数(スペースを含むコース名など)を送信できません。スペース(文字列の場合)とurl(引数の後に')'が必要)に関するエラーが発生します。何か案が?
このhttp://jsfiddle.net/gianlucaguarini/WSzCh/のようなものを試してみると、jQuery で簡単に実行できます。これは、アプリにとってよりクリーンで柔軟です。
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 );
});
関数メソッドを使用して、インライン ハンドラーではなくクリック ハンドラーを追加します。
newdiv.innerHTML = "<a href='#'>"+coursename+"</a>";
var a = newdiv.getElementsByTagName('a')[0];
a.addEventListener('click', function() { genGroups(userid, coursename, url); });
また、さまざまな形式の引用符の使用に注意してください。埋め込まれた引用符をエスケープする必要はありません。
URLも引用すべきだと思います...
そして onclick="..." (二重引用符付き) がいいでしょう
newdiv.innerHTML = '<a href=\'#\' onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';
引用符に問題があります。これを試して:
newdiv.innerHTML = '<a href="#" onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';
目立たないJSを使用することをお勧めします。ユーザー ID、コース名、および URL を 内のデータとして保存しa
、クリック イベントをバインドできます。アンカーからコース名を取得することもできます。