78042


JavaScriptを使ってページロード時にmetaタグ内ののソースコードを書き換えたいです。

`<link>` タグを取得して書き換えるところまではできたのですが、

  * `<link rel="shortcut icon" href="/favicon.ico" />`
  * `<link rel="stylesheet" type="text/css" media="screen,print" href="/css/style.css" />`

のように読み込むものが複数ある場合に、rel="stylesheet" の href だけを書き換えたい場合、  
以下のコードをどのようにすればよいでしょうか。

[code]

    $(document).ready(function() {
        var allParas = document.head.getElementsByTagName('link');
        console.log(allParas);
        var root = 'http://test.com';
        let len = allParas.length;
        for (let i = 0; i < len; i++){
            if ( allParas.item(i).href.match(/http/) == null) {
            allParas.item(i).href = root + allParas.item(i).href;
            allParas.item(i).href = allParas.item(i).href.replace( /file\/\//g , "" );
            }
        }
    });
    
[/code]


CC BY-SA 4.0
2021-07-08T01:47:11.650
78035
2021-07-08T06:22:06.923
2021-07-08T06:22:06.923
3060
47218
question
javascript
JavaScriptでmetaタグ内のlink要素の一部を書き換えたい


jQueryが使えるならば`$("link[rel='stylesheet']")`のようにセレクタで表現できます。  
[jQuery日本語リファレンス](http://semooh.jp/jquery/api/selectors/%5Battribute+value%5D/)

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="shortcut icon" href="./favicon.ico" />
    <link rel="stylesheet" type="text/css" media="screen,print" href="./css/style.css" />
    <title>サンプル</title>
    </head>
    <body>
    Hello world!
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
    $(document).ready(function() {
        let para = $("link[rel='stylesheet']")[0];
        console.log(para.href);
        para.href = "./css/style2.css" ;
        console.log(para.href);
    });
    </script>
    </body>
    </html>
    
[/code]


CC BY-SA 4.0
2021-07-08T02:25:22.780
78036
2021-07-08T02:25:22.780
9820
78035
answer


`document.head.getElementsByTagName('link')` を
`document.head.querySelectorAll('link[rel="stylesheet"]')`
に変更すればご希望どおりになるかと思います。


CC BY-SA 4.0
2021-07-08T05:19:02.537
78042
2021-07-08T05:19:02.537
3475
78035
answer