2016-08-07 15 views
-1

私は、次のHTMLコードを持っている:データ - *に異なるハイパーリンクを追加するには?

<article class="article" data-quota="Here goes nothing" data-share="Here goes social" data-tag1="Tag1" data-tag2="Tag2" data-tag3="Tag3"> 
    <h3>Author name</h3> 
</article> 

とJS:

function articleTemplate() { 
    $('.article').each(function() { 

    var $this = $(this), 
     dataQuota = $this.data('quota'), 
     dataTag1 = $this.data('tag1'), 
     dataTag2 = $this.data('tag2'), 
     dataTag3 = $this.data('tag3'), 
     dataShare = $this.data('share'); 

    var template = '<h4>' + dataQuota + '</h4>' + 
        '<h5>' + dataTag1 + ',' + dataTag2 + ',' + dataTag3 + '</h5>' + 
        '<footer>' + dataShare + '</footer>'; 

    $this.append(template); 
    }); 
} 

を私はJavaScriptを使用して、いくつかのtemplateingをやっているし、今まで私はこれを得ました。 outputed HTMLは次のとおりです。

<h3>Author name</h3> 
<h4>Here goes nothing</h4> 
<h5>Tag1,Tag2,Tag3</h5> 
<footer>Here goes social</footer> 

今私は、データクォータ、データ共有、データTAG1などへのハイパーリンクを追加したいですか?

+1

コードの掲載ラインがあなたの*入力された場合*、どのようなあなたの*出力としてで終わることを期待しますか*?どのJavaScriptを試してみましたか、どこにいらっしゃいましたか?何が悪かったのか?どのようなエラーがありましたか?何がうまくいかないのでしょうか?あなたは何が起こると期待していましたか、実際に何が起こったのですか? –

+0

私は間違いを持っ​​ていません。しかし今、出力されたすべてのテキストにハイパーリンクを追加したいと思います。私の英語は十分に明確です。 – Bobita

答えて

0

さまざまなオプションがあります。一つは、そのように書くことになります:

<article class="article" data-quota-content="Here goes nothing" data-quota-href="/some/link"> 
    <h3>Author name</h3> 
</article> 

jQueryが自動的にネストされたオブジェクトにデータを変換します。

と同等のソリューションは、これも自動的に解析されますあなたの属性にJSONフォーマットされた文字列を入れて次のようになります。

<article class="article" data-quota='{"content":"Here goes nothing", "href":"/some/link"}'> 
    <h3>Author name</h3> 
</article> 

だから、あなたが書く場合:

var $this = $(this), 
    dataQuota = $this.data('quota') 

その後dataQuotaが対象となります以下を含む:

{ 
    content : "Here goes nothing", 
    href : "/some/link" 
} 

方法:上記の行ったよう注意点としては

var template = '<h4><a href="'+dataQuota.href+'">' + dataQuota.content + '</a></h4>' + 

、あなたがHTMLコードを作成するべきではない、より良い方法は、そのように作成することです:

$this.append( 
    $('<h4>').append(
     $('<a>') 
      .attr('href',dataQuota.href) 
      .text(dataQuota.content) 
    ) 
); 

これは、あなたが取得していないことを保証しますエスケープの問題。

+0

多くのお返事をありがとうございますが、別の方法を見つけました。ありがとうございました – Bobita

+0

@Bobita別の方法を見つけたら、これを回答として共有する必要があります。 –

+0

提案ありがとうございました – Bobita

0

のjsファイルにちょうどいくつかの簡単なtweek:

function articleTemplate() { 
    $('.article').each(function() { 

     var $this = $(this), 
      dataQuota = $this.data('quota'), 
      dataTag1 = $this.data('tag1'), 
      dataTag2 = $this.data('tag2'), 
      dataTag3 = $this.data('tag3'), 
      dataShare = $this.data('share'); 

     var template = '<h4><a href="' + url + '">' + dataQuota + '</a></h4>' + 
         '<h5><a href="' + url2 + '">' + dataTag1 + '</a>,' + dataTag2 + ',' + dataTag3 + '</h5>' + 
         '<footer>' + dataShare + '</footer>'; 

     $this.append(template); 
    }); 

} 

var url = "http://bencollier.net/"; 
var url2 = "http://google.ro/"; 
+0

しかし、あなたは質問が正しいのではありませんでした。あなたは「データにさまざまなハイパーリンクを追加する方法 - *」と尋ねました。しかし、あなたは 'h4'と' h5'に追加する2つの固定URLを持っていて、それらは 'article'ごとに同じです。 –

+0

@ t.niese私は私のスクリプトでそれをすることはできませんでした...あなたのスクリプトを再度投稿することができます – Bobita

関連する問題