2012-11-12 104 views
0

我想從javascript設置asp圖像元素src屬性,但是url屬性未設置。從javascript設置asp圖像src屬性

function slideshow() { 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/RollingScreen.aspx/GetNextImage", 
    dataType: "json", 
    data: "{}", 
    success: function (data) { 
     //this changes the image on the web page 
     $('#imgSlideShow').attr("src","~/1.png"); 
     $("#txt1").val(data.d); 
     //fires another sleep/image cycle 
     setTimeout(slideshow,5000); 
    }, 
    error: function (result) { 
     alert(result.message); 
    } 
    }); 
} 

$(document).ready(function() { 
    //Kicks the slideshow 
    slideshow(); 
}); 

我的aspx圖像元素是

<asp:Image ID="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>.... 

誰能幫我...

+2

圖像ID在呈現時不是imgSlideShow。查看源代碼或檢查元素以查看ID是什麼,或者使用CssClass爲它提供一個類名,您可以使用它來引用它。此外,你不能在JavaScript中使用〜只在.Net – Archer

回答

2

你的錯誤是,你要使用你在asp.net已設置ID。但runat =「server」元素使用不同的ID呈現。類似於Content1_Content2_imgSlideShow。您可以在服務器端使用imgSlideShow.ClientID,並使用$('#' + jsVariableWithClientID)。但我更喜歡使用一些獨特的類(沒有問題,通過客戶端ID JS):

<asp:Image ID="imgSlideShow" CssClass="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>

,比JS,使用類選擇:

$('.imgSlideShow').attr("src","/1.png"); 

另一個問題是,JS做不知道~ - 這只是asp.net功能。並且你應該爲src指定圖像URL,如下所示:"/1.png"(假設它位於根目錄中)

+0

感謝FAngel ....問題解決了....我用/1.png代替〜/ 1.png ...並且它工作正常罰款.....感謝很多....你節省了我的時間.... – JItendra

+0

+1爲消除罪魁禍首〜 – Adil