【发布时间】:2015-06-23 08:07:10
【问题描述】:
我又遇到了一个相当简单的问题,但我找不到答案。
到目前为止,我一直在使用 Jquery 函数 .text() 在动态创建的 div 上的 mouseenter 上写入文本。我开始意识到这只适用于我的 Iceweasel,但不适用于 Chrome。取而代之的是,人们建议使用 .val() 的任何地方都使用 .text(),但我似乎无法确切地弄清楚如何在我的实现中使用它,因为 div 没有以前的文本值。
请在下面找到一个简单的代码,使用 .text() 来理解问题。
(function(){
for (var i = 0; i < 3; i++) {
var span = document.createElement("span");
span.innerHTML = "<img width=\"" + data.size[i][0] + "\" height=\"" + data.size[i][1] + "\" id=\"" + i + "\">";
span.style.position = "absolute";
span.style.left = data.coords[i][0] + "px";
span.style.top = data.coords[i][1] + "px";
document.body.appendChild(span);
}
}());
for (var i=0; i<3; i++) {
$('#' + i).mouseenter(function() {
$(this).text("text");
});
$('#' + i).mouseleave(function() {
$(this).text("")
});
}
http://jsfiddle.net/ckpx6esj/1/
我希望有人能给我一个想法,如何应用 .val() 或完全使用其他东西来使其也适用于 chrome。
提前致以最诚挚的问候和感谢!
【问题讨论】:
-
为什么使用 val() 不起作用?
-
怀疑
.text()有问题 - 可能是您的无效 ID。1不是有效的 id 值 - HTML id 必须以字母字符(或下划线)开头。 Chrome 等人在尝试通过该无效 ID 访问该元素时,可能无法从 DOM 中检索该元素。 -
这是因为您忘记为您的 spans 设置 id。您不能在图像上使用
.text()方法。 -
^ heh or that - id 被设置在
<img>
标签: javascript jquery