2011-12-29 1 views
1

У меня есть следующий скрипт, и он отлично работает с FF и Safari.JQuery аргумент javascript undefined в IE и Chrome

function swapimage(cid) { 
    jQuery('.imageshadowlg').attr("src", jQuery(cid).attr("src").replace('/thumb/', '/final/')); 
        } 

<a href='javascript:;' id='expic1link' onclick='swapimage(expic1)' ><img id='expic1' src='../gallery/pics/thumb/test.jpg' /></a> 

В IE, я получаю следующую ошибку

SCRIPT5009: 'expic1' is undefined 

Chrome дает следующее сообщение об ошибке

Uncaught TypeError: Cannot call method 'replace' of undefined 
swapimagegal.js:139 
(anonymous function)s_gallery.aspx:1 
onclick 

Эти сценарии расположены в отдельном JS файл.

Любые идеи?

+0

Возможно, попробуйте 'onclick = 'swapimage (" # expic1 ")' ', но это всего лишь предположение. –

ответ

5

Когда вы передаете любую строку в качестве аргумента, она должна быть заключена в кавычки, а селектор в функции неверен. Попробуйте это

function swapimage(cid) { 
    jQuery('.imageshadowlg').attr("src", jQuery('#'+ cid).attr("src").replace('/thumb/', '/final/')); 
        } 

<a href='javascript:;' id='expic1link' onclick='swapimage("expic1")' ><img id='expic1' src='../gallery/pics/thumb/test).jpg' /></a> 
+0

Это совершенно разумно. Спасибо огромное! – shinya

0

Какой бы селектор вы не проходили, не работает. Я предполагаю, что вы забыли поставить # или . перед именем.

Смежные вопросы