Mega noob在这里请原谅我这是一个愚蠢的问题还是没有任何意义。
我有一个li列表,我是从mySQL数据库动态创建的。这个代码如下所示:
var resultCount = 0;
var mxKey = $.now();
$.get("\\php\\phpGenre.php?mxKey"+mxKey, function(genreData){
jsonResults = JSON.parse(genreData);
while (resultCount<jsonResults.length){
var genreName = jsonResults[resultCount]['genre_name'];
$('#genreList').append('<li><a href="#" onclick="searchGenres(' + genreName + ');return false"><span>' + genreName + '</span></a></li>');
resultCount++;
}
});
当我创建列表时,我还需要能够添加一个调用函数的onClick事件...此函数使用列表名作为值,并通过变量genreName生成。我的列表创建正常,但onClick事件不起作用并继续返回:
SCRIPT5009: 'Documentary' is undefined
或另一个例子是:
SCRIPT5009: 'Fantasy' is undefined
其中'纪录片'和'幻想'是genreName。
所以我的问题是如何在每个列表项中包含一个onClick事件,该事件将使用genreName作为值?
如果我对列表进行硬编码,则可以正常工作:
<ul><li><a href="#" onclick="searchGenres('action');return false"><span>Still To Do...</span></a></li></ul>
谢谢....再次为我糟糕的编码知识而感到抱歉。
答案 0 :(得分:3)
你需要逃避'
你的genrename,因为你想把它作为字符串发送。
试试这个
$('#genreList').append('<li><a href="#" onclick="searchGenres(\'' + genreName + '\');return false"><span>' + genreName + '</span></a></li>');
答案 1 :(得分:1)
试试这个:
$('#genreList').append('<li><a href="#" onclick="searchGenres(\'' + genreName + '\');return false"><span>' + genreName + '</span></a></li>');
这将生成输出:
<li><a href="#" onclick="searchGenres('action');return false"><span>action</span></a></li>
而您的代码生成:
<li><a href="#" onclick="searchGenres(action);return false"><span>action</span></a></li>
答案 2 :(得分:0)
您的html正在创建为
searchGenres(Fantasy)或searchGenres(纪录片)
等等。你想要的是那些作为字符串发送的参数。您可以将代码更改为
... searchGenres(\''+ genreName +'\')....
注意其中一个'之前的逃脱。这将生成
searchGenres('Fantasy')或searchGenres('纪录片')等等
IMO,更好的选择是在创建html后使用jQuery函数向字段添加事件。见http://api.jquery.com/delegate/