繁体   English   中英

如何将动态生成的变量传递给javascript函数的innerHTML内的函数?

[英]How can I pass my dynamically-generated variable to the function inside the innerHTML of a javascript function?

在我的网站上,我在链接上使用onclick事件来调用javascript函数(链接位于来自外部php文件的WHILE循环中)。 来自php WHILE循环的onclick将用户图片和用户名传递给名为ShowUser()的javascript函数。 该事件正确生成用户名和照片,并将其放在div的innerHTML中,如下所示:

<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+'';
document.getElementById('UserPicHolder').innerHTML = '<img class="TipTip"    
title="'+TitleDesc1+'" src="'+userpic+'" style="width:60px; height:66px" alt="user  
picture">';
}
</script>

这工作正常。 但是,当我尝试使用户图片可点击(onclick#2)​​(通过添加一个href)来显示用户的网站统计信息时,该功能不会打开统计信息框(一个div应该被隐藏,直到onclick#2(DisplayUserStats) )在javascript函数中):

<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+ '';
document.getElementById('UserPicHolder').innerHTML = '<a href="#null"    
onclick="DisplayUserStats("'+username+'")"><img class="TipTip" title="'+TitleDesc1+'"    
src="'+userpic+'" style="width:60px; height:66px" alt="user picture"></a>';
}
</script>

当函数DisplayUserStats()为空(如DisplayUserStats())时,用户的Stats Box div可以正常显示,但当然由于没有定义用户名,因此未定义统计信息。 只有当看似任何内容被放置在DisplayUserStats()内部时,Stats Box div才会打开(例如DisplayUserStats(dummystring)不会打开Stats Box div。请注意,我已经尝试了其他几个连接(认为我做错了),例如,+用户名+'+用户名+'用户名等。有人可以了解如何将变量用户名传递给函数DisplayUserStats()吗?

如果不使用内联事件处理程序,它看起来会更清晰。 但问题是你在双引号内有双引号(因此HTML损坏):

<a href="#null" onclick="DisplayUserStats("SomeUsername")">...

你可以用这个丑陋的东西解决这个问题:

onclick="DisplayUserStats(\''+username+'\')">

此外,在定义JavaScript字符串时不要断行,否则代码将失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM