Javascript 我应该如何使用jquery填充嵌套元素?

Javascript 我应该如何使用jquery填充嵌套元素?,javascript,jquery,json,Javascript,Jquery,Json,我想在我的网站上显示新闻标题。我想使用Jquery填充它。我写的代码,但没有显示在网页上 HTML代码: <div class="col-md-4"> <div id="sidebar-wrapper"> <ul class="sidebar-nav"> <strong>Latest Headines</strong>

我想在我的网站上显示新闻标题。我想使用Jquery填充它。我写的代码,但没有显示在网页上

HTML代码:

<div class="col-md-4">
            <div id="sidebar-wrapper">
                <ul class="sidebar-nav">
                        <strong>Latest Headines</strong>
                    <li>
                        <a href="" class="title">
                            <h2> </h2>
                        </a>
                    </li>
                    <li>
                        <a href="" class="title">
                            <h2> </h2>
                        </a>
                    </li>
                    <li>
                        <a href="" class="title">
                            <h2> </h2>
                        </a>
                    </li>
                    <li>
                        <a href="" class="title">
                            <h2> </h2>
                        </a>
                    </li>
                    <li>
                        <a href="" class="title">
                            <h2> </h2>
                        </a>
                    </li>
                </ul>
            </div>
        </div> 

    最新标题
JS代码:

$(document).ready(function() {

$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api-key',function(json) {
        console.log(json);
        console.log(json.articles.length);

        function headlines (json) {
            for(var i=0;i<5;i++){
                $('.sidebar-nav li a h2').eq(i).html(json.articles[i].title);
            }
        }
});
});
$(文档).ready(函数(){
$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api键',函数(json){
log(json);
log(json.articles.length);
函数标题(json){
对于(var i=0;i
$('.sidebar nav li').eq(i).find('h2').html(…)

li
是您要查找的第n个元素,而不是
h2

因此,您应该缓存nav元素或
li
s,以避免重击DOM:

var $lis = $('.sidebar-nav li')

for(var i=0;i<5;i++){
     $lis[i].find('h2').html(json.articles[i].title);
}
var$lis=$('.sidebar nav li')
对于(var i=0;i
$('.sidebar nav li').eq(i).find('h2').html(…)

li
是您要查找的第n个元素,而不是
h2

因此,您应该缓存nav元素或
li
s,以避免重击DOM:

var $lis = $('.sidebar-nav li')

for(var i=0;i<5;i++){
     $lis[i].find('h2').html(json.articles[i].title);
}
var$lis=$('.sidebar nav li')

对于(var i=0;i首先:您不调用函数标题,因此不会输出任何内容;)

第二个:

$('.sidebar-nav li a h2').eq(i)
我认为它只适用于第一项,因为a-Tag中只有1个H2标记。 我建议给所有的H“-标记一个像“.headline”这样的类,并对它们进行评级


我希望这会有所帮助;)

首先:您不调用函数标题,因此不会输出任何内容;)

第二个:

$('.sidebar-nav li a h2').eq(i)
我认为它只适用于第一项,因为a-Tag中只有1个H2标记。 我建议给所有的H“-标记一个像“.headline”这样的类,并对它们进行评级


我希望这有帮助;)

您在回调中看到控制台日志了吗?如果是,数据是什么样子的?如果不是,请添加错误句柄注意您从不调用
headlines()
您只是在创建函数标题,您需要调用您的函数。您是否在回调中看到控制台日志?如果是,数据是什么样子?如果不是,请添加错误句柄注意您从未调用
标题()
您只是在创建函数标题,您需要调用您的函数。我是否应该删除
标记并只填充
。在
内部填充
还是只填充
是一种好的做法?我认为这两种方法都可以,所以选择最简单的方法。在这种情况下,删除h2并设置directl的样式y a标记是直接的。我应该删除
标记并只填充
。在
内部填充
还是只填充
是一种好的做法?我认为两种方法都可以,所以选择最简单的方法。在这种情况下,删除h2并直接设置a标记的样式是直接的。