如何将带空格的url和/或字符串发送到onclick函数?

时间:2013-05-30 20:13:47

标签: php javascript html

我有一个innerHTML声明如下:

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

我无法通过onclick发送任何url和/或字符串变量(例如,其中包含空格的coursename)。发生与空格(包含字符串)和url(在参数之后需要')'相关的错误。有什么想法吗?

4 个答案:

答案 0 :(得分: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 );
});

答案 1 :(得分:1)

使用函数方法添加单击处理程序,而不是内联处理程序:

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

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

另外,请注意使用不同形式的引号,因此您不必转义嵌入式引号。

答案 2 :(得分:0)

我认为该网址也应引用......

和onclick =&#34; ...&#34; (用双引号)会很好

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

答案 3 :(得分:0)

您的报价有问题。试试这个:

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

我建议你使用不引人注目的JS。您可以将userid,coursename和url存储为a中的数据,并绑定click事件。你甚至可以从锚中获取coursename。