2010-03-03 99 views
0

我正在使用此代碼來更改圖像的標題。IE拼接和連接問題

基本上它應該拆分破折號(總會有至少一個),並將第一部分作爲標題,其餘破折號作爲描述。

這在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

您是否嘗試過調試它,以便您可以檢查「零件」以查看它包含的內容?這兩條線之間的警報(部分)將是一個開始。

方面評論:你正在定義全局變量,部分,標題,描述,你可能需要局部變量。嘗試使用「無功」的關鍵字,例如:

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 
+0

很煩人,謝謝! – fire 2010-03-03 16:50:31

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; 
}); 

附註:我不認爲在標題中的HTML標記屬性是允許/有效的。