我正在尝试使用jquery工具提示显示鼠标悬停事件数据。有这样的数据:
{"description":"marry christmas","date":"2016-12-25
"}`我从服务器获得的JSON字符串。我就像这样在我的日历上解析它
holi是一个变量名,它保存在JSON字符串之上
这是我的导入
<link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet">
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
$.each(JSON.parse(holi), function(i, item) {
var holidayDate=item.date+"";
var parts= holidayDate.split("-");
alert("parts:"+parts[2]);
document.getElementById(parts[2]+parts[1]).style.color="green";
var va= document.getElementById(parts[2]+parts[1]).innerHTML;
document.getElementById(parts[2]+parts[1]).innerHTML="<label id="+parts[2]+parts[1]+" title="+
item.description+">"+va+"</label>";
$("#"+parts[2]+parts[1]).tooltip();
});
}
现在,当我在12月25日徘徊时,它只是让我结婚,而不是&#34;嫁给christamas&#34;我在chrome中试过这个。请告诉我这个错误吗?
答案 0 :(得分:1)
您需要在title属性值周围添加引号。试试这个:
sudo kextutil -n -print-diagnostics myble.kext
请注意=之后和&gt;之前的单引号围绕你的item.description变量。
另外,正如其他人所指出的那样,避免从javascript写出DOM。它容易出错,难以维护。
答案 1 :(得分:0)
构建标题HTML时,需要考虑如何解析HTML。如果标题消息包含空格,则必须引用HTML属性值。
您可以通过利用jQuery API来清理您的代码,因为您已经在使用该库:
$.each(JSON.parse(holi), function(i, item) {
var holidayDate = item.date + "";
var parts = holidayDate.split("-");
var dayId = parts[2] + parts[1], day = $("#" + dayId);
day.css("color", "green")
.html($("<label/>", {
title: item.description,
html: day.html()
}))
.find("label").tooltip();
});
使用jQuery,您可以使用表单
构建具有较少丑陋引用争论的新HTML$("<tagname/>" {
attribute: value,
attribute: value,
// ...
})
在这种情况下,代码设置&#34;标题&#34;属性然后是内容; &#34; html&#34; attribute的作用类似于jQuery .html()
方法。
之后,它会找到刚刚添加的<label>
元素并调用.tooltip()
方法。