jquery:工具提示未在空格

时间:2016-12-24 15:36:42

标签: javascript jquery css json

我正在尝试使用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中试过这个。请告诉我这个错误吗?

2 个答案:

答案 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()方法。