javascript
  • html
  • string
  • function
  • onclick
  • 2015-11-07 143 views 0 likes 
    0

    我想將一個JavaScript變量傳遞給onclick函數,該函數可以很好地處理數字變量,但不能與字符串一起使用。我需要從一個物體傳遞attribut像這樣:將字符串參數傳遞給onclick javascript函數

    onclick="showImg(<%= ep.trackId%>); 
    

    我showImg函數接受這個attribut,但是當我試圖傳遞一個字符串,像這樣:

    onclick='showImg(\""+<%= ep.artworkUrl30 %>+"\");'> 
    

    功能根本不起作用。有沒有辦法讓它工作或繞過這個問題?

    +0

    請嘗試我在這裏更新的答案http://stackoverflow.com/a/33578023/3057648 –

    回答

    0

    我覺得'沒有正確關閉,請嘗試

    onclick='showImg(\"'+<%= ep.artworkUrl30 %>+'\");'> 
    

    編輯: 查看你的代碼 後,你可以嘗試

    <% var epArray = episodes[0]; %> 
    <% _.each(epArray, function(ep){ %> 
        <option value="<%= ep.trackNumber %>" onclick='showImg("<%= ep.artworkUrl30 %>");'><%= ep.trackName %></option> 
    <% }); %> 
    
    1

    你不想污染與HTML函數調用,所以不要使用onclick屬性。使用javaScript添加事件偵聽器。

    var someString = "\<%= ep.artworkUrl30 %>\"; 
    element.addEventListener('click', function(someString){ 
        //do something with someString 
    }); 
    

    https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

    1

    的ASP.NET代碼金塊(<%= ... %>)都是在服務器端處理;不需要連接引號。嘗試簡單:

    onclick='showImg("<%= ep.artworkUrl30 %>");'> 
    
    0

    它絕對是一個問題,你如何逃避各種報價。這真的取決於你的陳述的內容。如果你是在原始的HTML,那麼你應該有:

    <body onclick='showImg("<%= ep.artworkUrl30 %>")'></body> 
    

    如果你需要你的字符串中的報價,那麼這些將是:

    <body onclick='showImg("\"<%= ep.artworkUrl30 %>\"")'></body> 
    

    然而,如果你想生成JavaScript中的HTML(就像它看起來你可能會),那麼你可能不得不使用其他字符串轉義方法。

    相關問題