1
<script type="text/javascript">
    function achat_change_themes() {
        var rel = $('link[title="chat_theme"]');
        var select = $('#achat_times').attr('value');
  if(select == "GrayScale") {
       rel.attr('src' , 'www.avacwebthemes.vacau.com/css/mario_theme.css');
    }
  else if (select == "Mario") {
     rel.attr('src' , 'www.avacwebthemes.vacau.com/css/mario_theme.css');
    }
  else if (select == "Eartone") {
     rel.attr('src' , 'www.avacwebthemes.vacau.com/css/mario_theme.css');
     }
  else if (select == "Dark") {
     rel.attr('src' , 'www.avacwebthemes.vacau.com/css/mario_theme.css');
     }
  else if (select == "Floral") {
     rel.attr('src' , 'www.avacwebthemes.vacau.com/css/mario_theme.css');
     }
  else if (select == "Military") {
     alert(www.avacwebthemes.vacau.com/css/mario_theme.css);
     }

  }
 </script>

HTMLモック

<select id="achat_themes" onChange="achat_change_themes();">
  <option value="GrayScale">GrayScale</option>
    <option value="Mario">Mario</option>
      <option value="EarthTone">EarthTone</option>
        <option value="Dark">Dark</option>
          <option value="Floral">Floral</option>
            <option value="Military">Military</option>
  </select>

基本的に私がやりたいことは、選択の変更イベントで、ヘッドのリンクタグのsrcを変更することです...など

<link type="text/css" rel="stylesheet" title="chat_theme" href="http://sourcefile.com/css/file.css">

そして、これをテストしていたときに最後の選択が警告されるたびに変更したいと思います.5分間一緒に投げて、jQueryでjavascript関数を試してみました. 提案を実行していませんか?

内部コード全体を取り出してみましたが、achat_change_themes が未定義のままですか? 私は関数を間違って書いているに違いありませんか?

4

3 に答える 3

1

いくつかの提案があります。あなたの質問に直接答えようとすることと、よろしければコードの改善に役立てることの両方を試みてください。

提案 1:「src」ではなく、リンクの「href」プロパティを探していると思います。

提案 2:要点を説明するためだと思いますが、念のため (このようなことをたくさん忘れてしまいました): 'www.avacwebthemes.vacau.com/css/mario_theme.css' を次のように変更してください。いざというときの適切な住所。

提案 3:一連の if の代わりに、関数でJavaScript のswitch ステートメントを使用します。それはずっときれいです:

switch(select)  
{  
    case "Grayscale":     
    {
        rel.attr('href', 'www.avacwebthemes.vacau.com/css/mario_theme.css');  
        break;
    }

    case "Mario":  
    {
        rel.attr('href', 'www.avacwebthemes.vacau.com/css/mario_theme.css');  
        break;
    }
    //Etc
}

提案 4: jQuery を使用しようとしている場合は、次のコードのようなものを使用することをお勧めします (スクリプト ブロックは、頭ではなく本体の中に入ります)。

<script>
$(function() {
        $('#achat_themes').change( function() {
                var rel = $('link[title="chat_theme"]');
                switch($(this).val())
                {  
                    case "Grayscale":     
                    {
                        rel.attr('href', 'www.avacwebthemes.vacau.com/css/mario_theme.css');  
                        break;
                    }

                    case "Mario":  
                    {
                        rel.attr('href', 'www.avacwebthemes.vacau.com/css/mario_theme.css');  
                        break;
                    }
                    //Etc
                }
            });
    });
</script>
于 2013-02-03T07:46:34.607 に答える
0

onChangeの代わりにjQuerychange()イベントを使用します。

attr("src",link);間違っています-代わりにhrefを変更する必要があります。

ドロップダウンの値を取得するために使用する代わりに、attr("val")val()が必要です。

また、スペル#achat_themesを間違えまし#achat_timesた。

すべての問題が修正されたフィドルは次のとおりです。

http://jsfiddle.net/498Z5/

于 2013-02-03T07:02:10.673 に答える
0

この方法を試してみませんか:

フィドルを試してください:http://jsfiddle.net/Ng24P/

$(function () {
    $('#achat_themes').change(function () {
        changeTheme($(':selected').val());
    });
});

function changeTheme(theme) {
    var stylshit = $('[title="chat_theme"]');
        stylshit.attr('href','http://sourcefile.com/css/'+theme.toLowerCase()+'.css');
        alert(stylshit.attr('href'));
}
于 2013-02-03T09:20:14.747 に答える