0

私はこのビットのhtmlを持っています:

<div id="storeBtn">
    <a href="http://itunes.apple.com/artist" target="itunes_store" class="button">Download on iTunes</a>
</div>

Android を検出した場合は、次のように変更します。

<div id="storeBtn">
    <a href="http://amazon.com/artist" class="button">Download on Amazon</a>
</div>

これは私の試みです:

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
$("#storeBtn").html("<a href='http://amazon.com/artist' class='button'>Download on Amazon</a>");

}

しかし、何も変わりません。html() の代わりに replaceWith() も試しました。

4

2 に答える 2

1

このコードは、実行前にDomの準備が整うのを待つ必要があります。

$(function() {
    var ua = navigator.userAgent.toLowerCase(); 
    var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile"); 
    if(isAndroid) { 
        $("#storeBtn").html("<a href='http://amazon.com/artist' class='button'>Download on Amazon</a>"); 

    } 
}
于 2012-09-26T17:02:10.673 に答える
0

コードをheadセクションに配置するのではなく、本文の最後にあるscript要素に配置します。

...

<script>
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
    $("#storeBtn").html("<a href='http://amazon.com/artist' class='button'>Download on Amazon</a>");
}
</script>
</body>
</html>

コードが先頭にある場合、そのコードはdivをDOMに追加する前に実行されます。

于 2012-09-26T17:26:16.200 に答える