2017-06-05 10 views
0

Node.jsのHTML Webページの特定の要素にヘッダーとフッターを動的に追加する必要がありますが、その方法はわかりません。私は、ヘッダーとフッターのコンテンツに余分な文字列を含んでいてもいなくてもよい、文字列とオプションとしてhtmlをとる関数を持っています。Node.jsの既存のhtml文字列に余分な要素を追加する

ヘッダやフッタのいずれかを関数に渡すと、既存のHTMLに適切に追加されるという考えがあります。

ここに、関数の外観を示します。ヘッダー/フッターのコンテンツがあるかどうかテストするのにlodashを使用しています。 ifブロック内で追加を実行したいと思います。私はcheerioを見てきましたが、それが文字列の中にhtmlで使用できるかどうかはわかりません。事前に助けてくれてありがとう!

function generator(html, options) { 

    var header = _.get(options, 'partials.header'); 
    var footer = _.get(options, 'partials.footer'); 


    // Check if either header of footer options.partials 
    if(header || footer) { 
     console.log('YEAH! ::: ', header); 
     // Append header and/or footer to the HTML here 

    } 
} 
+0

Cheerio READMEの最初の例は、文字列内にあるHTMLを解析する方法を示しています。 https://www.npmjs.com/package/cheerio –

答えて

0

文字列を連結するのはどうですか?

function generator(html, options) { 

    var header = _.get(options, 'partials.header') || ''; 
    var footer = _.get(options, 'partials.footer') || ''; 


    // Check if either header of footer options.partials 
    if (header || footer) { 
     html = (header + html + footer); 
    } 

    return html; 
} 
+0

この文脈でうまくいく提案に感謝します。問題は、ヘッダーとフッターがhtml内になければならないことです.HTMLは完全なWebページであり、特定のポイントに追加されます。たとえば、ヘッダーはページラッパーdivの直下のchildNodeとして追加する必要があります。申し訳ありませんが私はそれを明確にしませんでした。 – mikeym

+0

@mikeym htmlにプレースホルダを追加し、正規表現を使ってヘッダ/フッタを入れ替える方法はありますか? –

関連する問題