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

How to send url and/or strings with spaces to a onclick function?

本文关键字:字符串 onclick 函数 空格 url 何发送      更新时间:2023-09-26

我有一个innerHTML声明如下:

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

我不能发送任何url和/或字符串变量(e。(课程名称中有空格)通过点击。发生与空格(字符串大小写)和url(参数后需要一个')相关的错误。任何想法?

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

newdiv.innerHTML = "<a href='#'>"+coursename+"</a>";
var a = newdiv.getElementsByTagName('a')[0];
a.addEventListener('click', function() { genGroups(userid, coursename, url); });

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

你可以很容易地用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 );
});

我认为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。您可以将userid、coursename和url作为数据存储在a中,并绑定一个单击事件。你甚至可以从锚中获取课程名称。