我正在使用此代码来更改图片的标题。
基本上它应该分割短划线(总会至少有一个)并将第一部分作为标题,剩下的破折号作为描述。
这在FF中工作正常但在IE中没有(在v8中测试)它在描述行上给了'对象不支持这个属性或方法'。
我已经尝试了所有数量的测试,但IE在拼接之后不喜欢部件[0]。有什么想法吗?
$('.right ul li img').each(function() {
parts = $(this).attr('title').split('-');
title = $.trim(parts[0]);
parts.splice(0, 1);
description = $.trim(parts.join('-'));
title = '<strong>' + title + '</strong><br />' + description;
$(this).attr('title', title);
});
答案 0 :(得分:0)
您是否尝试过调试它以便检查“部件”以查看其中包含的内容?两行之间的警报(部分)将是一个开始。
旁注:你要定义全局变量,部分,标题,描述,你可能想要局部变量。尝试使用“var”关键字,例如:
var parts = 6;
var notparts = 7;
$('.right ul li img').each(function() {
parts = ["a", "b"];
// ...
var notparts = "foo";
// ...
});
alert(parts); // => "a, b" alerted
alert(notparts); // => "7" alerted
答案 1 :(得分:0)
不确定错误,但这是另一种选择:
$('.right ul li img').attr('title', function() {
var parts = this.title.match(/^([^-]+)-?(.*)/);
if (parts)
return "<strong>" + $.trim(parts[1]) + "</strong><br />" + $.trim(parts[2]);
else
return this.title;
});
附注:我认为title属性中的HTML标记不允许/有效。