Javascript 将mouseover()事件后检索的text()存储为用于查询JSON字符串的变量
我试图根据悬停在上面的特定元素动态查询JSON字符串。元素是P标签,只有与玩家姓名相等的文本 脚本(包含json字符串):Javascript 将mouseover()事件后检索的text()存储为用于查询JSON字符串的变量,javascript,jquery,html,css,json,Javascript,Jquery,Html,Css,Json,我试图根据悬停在上面的特定元素动态查询JSON字符串。元素是P标签,只有与玩家姓名相等的文本 脚本(包含json字符串): 进入一个全局变量,我可以稍后在页面中使用。对话框中的脚本仅在第一次创建对话框时执行 我建议你改变一下: $(函数(){ $(“#对话框”)。对话框({ 宽度:150, 位置:{my:“center”,位于:“.ball container”的“right”}, 自动打开:错误, 展示:{ 效果:“盲”, 持续时间:1000 }, 隐藏:{ 效果:“爆炸”, 持续时间:10
进入一个全局变量,我可以稍后在页面中使用。对话框中的脚本仅在第一次创建对话框时执行 我建议你改变一下:
$(函数(){
$(“#对话框”)。对话框({
宽度:150,
位置:{my:“center”,位于:“.ball container”的“right”},
自动打开:错误,
展示:{
效果:“盲”,
持续时间:1000
},
隐藏:{
效果:“爆炸”,
持续时间:1000
}
});
$(“.players”).mouseover(函数(){
$('#statName').text(this.textContent);
$('#avg').text(json[this.textContent].avg);
$(“对话框”)。对话框(“打开”);
});
$players='{“Player One”:{“avg”:“400”,“gp”:“2”,“gs”:“2”,“ab”:“5”,“r”:“0”,“h”:“2”}\
“玩家二”:{“avg”:“500”,“gp”:“2”,“gs”:“0”,“ab”:“2”,“r”:“1”,“h”:“1”}'
var json=json.parse($players);
});代码>
玩家一号
玩家二
对话框内的脚本仅在第一次创建对话框时执行
我建议你改变一下:
$(函数(){
$(“#对话框”)。对话框({
宽度:150,
位置:{my:“center”,位于:“.ball container”的“right”},
自动打开:错误,
展示:{
效果:“盲”,
持续时间:1000
},
隐藏:{
效果:“爆炸”,
持续时间:1000
}
});
$(“.players”).mouseover(函数(){
$('#statName').text(this.textContent);
$('#avg').text(json[this.textContent].avg);
$(“对话框”)。对话框(“打开”);
});
$players='{“Player One”:{“avg”:“400”,“gp”:“2”,“gs”:“2”,“ab”:“5”,“r”:“0”,“h”:“2”}\
“玩家二”:{“avg”:“500”,“gp”:“2”,“gs”:“0”,“ab”:“2”,“r”:“1”,“h”:“1”}'
var json=json.parse($players);
});代码>
玩家一号
玩家二
在鼠标悬停事件发生之前,您的对话框信息已被填充。在mouseover
事件处理程序中,需要将适当的信息复制到对话框中
这意味着您的对话框可能如下所示:
<div id="dialog">
<p>Avg: <span id="statavg"></span></p>
</div>
$(".players").mouseover(function() {
playerName = $(this).text();
$("#statavg").text(json[playerName].avg);
$("#dialog").dialog("open");
});
虽然我不太熟悉jQueryUI对话框功能。您的对话框信息是在您的鼠标悬停事件发生之前填写的。在mouseover
事件处理程序中,需要将适当的信息复制到对话框中
这意味着您的对话框可能如下所示:
<div id="dialog">
<p>Avg: <span id="statavg"></span></p>
</div>
$(".players").mouseover(function() {
playerName = $(this).text();
$("#statavg").text(json[playerName].avg);
$("#dialog").dialog("open");
});
虽然我不太熟悉jQueryUI对话框函数。不要再次声明var statName
。只需给它赋值。另外,如果使用jQuery而不是使用document.write(..
alert(json[statName].avg),还有更好的方法来填充对话框
应该有效。这些答案不起作用。问题是statName变量隐藏在函数中,因此无法识别。我需要mouseover函数中的var statName来接管“全局”变量statName,而不仅仅是在函数中隔离。不要再次声明var statName
。只需为如果您使用jQuery而不是使用document.write(..
alert(json[statName].avg),那么还有更好的方法来填充对话框
应该可以。这些答案不起作用。问题是statName变量隐藏在函数中,因此无法识别。我需要mouseover函数中的var statName来接管“全局”变量statName,而不仅仅是在函数中隔离。这看起来不错……我会查看一下,然后再与您联系……谢谢谢谢你的帮助。真不敢相信我错过了。这个看起来不错…我会看一看然后再给你回复…谢谢你的主意。谢谢你的帮助。真不敢相信我错过了。
<div id="dialog">
<p>Avg: <span id="statavg"></span></p>
</div>
$(".players").mouseover(function() {
playerName = $(this).text();
$("#statavg").text(json[playerName].avg);
$("#dialog").dialog("open");
});