jQuery .html()没有执行嵌入式jquery

时间:2015-01-25 00:29:52

标签: javascript jquery ajax

我已经浏览了堆栈溢出中的大多数问题,还有谷歌并尝试了一堆代码但仍然无法让我的代码正常工作!

所以我想要做的是通过Ajax获取一些文本和脚本并将它们插入到div中,但是,内联jQuery似乎不起作用。文本可能很长,所以我想要做的是添加文本预览,当用户点击"查看更多"链接,jQuery切换较长的文本以显示和隐藏预览。

以下是我在文档中插入文字的代码;

JSON从Ajax返回



if (resp['marker'].length > 0) {
     htmltext = '<h5>Markers<a class="pull-right" onclick="seeall(\'marker\')">See all</a></h5><hr>';
     for (var i = 0; i < resp['marker'].length; i++) {
          htmltext += '<p><a>'+resp['marker'][i]['title']+'<a class="label label-warning"> > Go to marker</a></a></p>';
          htmltext += '<p id="marker-prev'+i+'"><span>'+resp['marker'][i]['advertisement'].substring(0,50)+'</span><a onclick="$(\'#marker-all'+i+'\').toggle();$(\'#marker-prev'+i+'\').toggle()"> More </a></p>';
          htmltext += '<p style="display:none" id="marker-all'+i+'"><span>'+resp['marker'][i]['advertisement']+'</span><a onclick="$(\'#marker-all'+i+'\').toggle();$(\'#marker-prev'+i+'\').toggle()"> Less </a></p>';
          htmltext += '<p><span>'+resp['marker'][i]['catagory']+'</span></p>';
     }
     htmltext += '<hr>';
     $('#markerssr').show();
     $('#markerssr').html(htmltext);
}
&#13;
&#13;
&#13;

有趣的是,几行下来,这个代码有效;

JSON从Ajax调用返回

&#13;
&#13;
if (resp['corp'].length > 0) {
    htmltext = '<h5>Businesses<a class="pull-right" onclick="seeall(\'corp\')">See all</a></h5><hr>';
    for (var i = 0; i < resp['corp'].length; i++) {
        htmltext += '<p><a>'+resp['corp'][i]['name']+'</a><a class="label label-warning"> > Go to business</a></p>'
        htmltext += '<p id="corp-prev"><span>'+resp['corp'][i]['description'].substring(0,50)+'</span><a onclick="$(\'#corp-all\').toggle();$(\'#corp-prev\').toggle()"> More </a></p>';
        htmltext += '<p style="display:none" id="corp-all"><span>'+resp['corp'][i]['description']+'</span><a onclick="$(\'#corp-all\').toggle();$(\'#corp-prev\').toggle()"> Less </a></p>';
        htmltext += '<p><span>'+resp['corp'][i]['address']+'</span><span>'+resp['corp'][i]['email']+'</span></p> ';
   }   
   htmltext += '<hr>';
   $('#businessessr').show(); 
   $('#businessessr').html(htmltext); 
}
&#13;
&#13;
&#13;

抱歉,我的代码格式很糟糕,但是我的截止日期。

1 个答案:

答案 0 :(得分:0)

我看到的第一件事(但可能不是什么新东西),就是在内联jQuery中调用了不同的ID。

$(\'#marker-all\').toggle() VS $(\'#corp-prev\').toggle()

此外,您确定页面上只有 1#marker - all吗? jQuery在找到第一个ID后将停止搜索。

在浏览器控制台中运行以下代码时:

$('#marker-all').length

输出1吗?还是0?