javascript - 动态向 javascript 函数传递参数时出错

标签 javascript jquery html

我正在动态创建列表。当用户单击该 li 元素时,将调用 setCollege 方法。

生成li的代码是:

$('#dropDown ul').append("
<li onclick=setCollege("+ data[i].id +",'"+ data[i].college_name +"')><i class='fa fa-university'></i>" + data[i].college_name + "</li>");

但是 JavaScript 会在大学名称的空格后动态添加 ",例如

<li onclick="setCollege(3,'Nirma" university')"> <i class="fa fa-university"></i>Nirma University</li>

由于",调用js函数时产生错误

最佳答案

onclick 是一个 html 属性,因此需要将其本身放在引号中。

试试这个:

var tpl = '<li onclick="setCollege(' + data[i].id + ', ' + data[i].college_name + ' );"><i class="fa fa-university"></i>' + data[i].college_name + '</li>';
$('#dropDown ul').append( tpl );

注意单引号和双引号的使用。

但是由于您的问题被标记为 jquery,我建议:

var listItem = $( '<li></li>' ).text( data[i].college_name );
$( '<i class="fa fa-university"></i>' ).prependTo( listItem );
listItem.on( 'click', function() {
    setCollege( data[i].id, data[i].college_name);
});
listItem.appendTo( '#dropDown ul' );

关于javascript - 动态向 javascript 函数传递参数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303067/

相关文章:

javascript - 在 IE 中解析日期

html - 两个 Div 的高度不等,仅使用 HTML 和 CSS

javascript - 带有 Accordion 标题的 Jquery 图片库

jquery - 如何在链接上方制作一个弹出框,其中包含可供选择的元素?

javascript - jquery live可以解决这个问题吗?表格链接必然要点击,ajax 刷新行会毁掉一切

jquery - 我怎样才能拥有像 followbubble.com 这样的 CSS3 动画菜单

html - 如何将文本定位在 block 或行内 block 元素的底部?

javascript - 路由: Visible parameter value on hovering over ui-sref disappears when clicked

javascript - 来自 JSON 数组的动态复选框

javascript - 是否可以在 HTML 中使用垂直文本方向?