ホームページでは、JS はニュース ページから最大 3 つのニュース記事を取得し、全文にリンクする短縮版を表示します。私が直面している問題は、連結しようとしている変数の 1 つが意図したとおりに連結されていないことです。
ホームページ:
<div id="news-autoloader">
</div>
ニュースページ:
<h3 id="news1">News Item 1</h3>
<p>Lorem ipsum dolor sit amet...</p>
<h3 id="news2">News Item 2</h3>
<p>Lorem ipsum dolor sit amet...</p>
// more or less of the same news items
ニュースページには項目がないかもしれませんが、h3 見出しに続く最初の p のうち、最初に見出し、次に n 文字 (むしろ n 単語をキャプチャしたいのですが、それはこの問題が解決された後です!) まで最大 3 つキャプチャします。
<script>
$.get('company-news.html',
function(data){
var news1 = $(data).find('#news1 + p');
var news2 = $(data).find('#news2 + p');
var news3 = $(data).find('#news3 + p');
// see how many news items there are (there's probably a more graceful way of doing this!):
if (news1.html() == null){
var items = 0;
} else if (news2.html() == null){
var items = 1;
} else if (news3.html() == null){
var items = 2;
} else {
var items = 3;
}
if (items == 0){
$('#news-autoloader').append('<h3>No News.</h3>');
} else {
for (i=1; i<=items; i++){
var abc = '#news' + i;
var def = 'news' + i;
var url = 'a href="company-news.html#news' +i;
$('#news-autoloader').append($(abc,data)).append('<p>' + def.html().substr(0, 175) + ' <' + url + '">More</a></p>');
}
}
}, 'html');
</script>
すべてが機能します -abc
最初の追加では正しく評価されますが、2 回目の追加では variableは正しく評価されdef
ません。
以下の3点が知りたいです。
def
1) 2番目の追加で作業するにはどうすればよいですか
2) ニュース項目の数を見つけるより優雅な方法はありますか?
3) 文字数ではなく単語数で制限するにはどうすればよいですか (省略された文が完成します)。
ティア!!!