javascript - jQuery 内部 html 问题

标签 javascript jquery html

 <script>
    $(document).ready(function() {
    var msg='{"ui":{"callData":[{"Title":"Caller Details", "Text":"<html><body><table border=&quot;1&quot;><tr><td>Caller details content</td></tr></table></body></html>"},{"Title":"Add Information", "Text":"<html><body><table border=&quot;1&quot;><tr><td>Add information content</td></tr></table></body></html>"}]}}';
    var response=JSON.parse(msg);

    $.each(response.ui.callData, function(index, item) {
        if(index==0)
        $("#tabs ul").append('<li><a href=&quot;#tabs-'+(index+1)+'&quot;>'+item.Title+'</a><span class=" ui-icon "></span></li>');
        else
        $("#tabs ul").append('<li><a href=&quot;#tabs-'+(index+1)+'&quot;>'+item.Title+'</a><span class=" ui-icon ui-icon-circle-close ui-closable-tab "></span></li>');
        $("#tabs").append('<div id="tabs-'+(index+1)+'"></div>');
        $("#tabs-"+(index+1)).html(item.Text);
    });
    });
}
);

 <script>
$(function() {
$( "#tabs" ).tabs();
$(".ui-closable-tab").live( "click", function() {
    var tabContainerDiv=$(this).closest(".ui-tabs").attr("id");
    var panelId = $( this ).closest( "li" ).remove().attr( "aria-controls" );
    $( "#" + panelId ).remove();
    $("#"+tabContainerDiv).tabs("refresh");
});
});
</script>

    ...
    ...
    <div id="tabs">
     <ul>
     </ul>
    </div>

我面临的问题是,jQuery 能够在页面加载时显示 2 个选项卡,但是两个选项卡内部 html 都显示“来电者详细信息内容”“添加信息内容” 。 关于优先级,有人可以建议如何解决这个问题吗? 我只想在“来电详细信息”选项卡中显示“来电详细内容”,在“其他信息”选项卡中显示“添加信息内容”。

最佳答案

您应该仅在插入信息后声明选项卡。因此,删除当前的 $( "#tabs").tabs(); 行,并将其添加到 JSON 的 $.each 之后,这样您的第一个脚本应该如下所示像这样:

  $(document).ready(function () {
      var msg = '{"ui":{"callData":[{"Title":"Caller Details", "Text":"<html><body><table border=&quot;1&quot;><tr><td>Caller details content</td></tr></table></body></html>"},{"Title":"Add Information", "Text":"<html><body><table border=&quot;1&quot;><tr><td>Add information content</td></tr></table></body></html>"}]}}';
      var response = JSON.parse(msg);

      $.each(response.ui.callData, function (index, item) {
          if (index == 0) $("#tabs ul").append('<li><a href=&quot;#tabs-' + (index + 1) + '&quot;>' + item.Title + '</a><span class=" ui-icon "></span></li>');
          else $("#tabs ul").append('<li><a href=&quot;#tabs-' + (index + 1) + '&quot;>' + item.Title + '</a><span class=" ui-icon ui-icon-circle-close ui-closable-tab "></span></li>');
          $("#tabs").append('<div id="tabs-' + (index + 1) + '"></div>');
          $("#tabs-" + (index + 1)).html(item.Text);
      });

      $( "#tabs" ).tabs();
  });

关于javascript - jQuery 内部 html 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32358468/

相关文章:

javascript - 将新字段和值推送到node.js中的json数组对象

javascript - 列表框选择的项目按钮单击从值打开链接

jquery - 使用 Raphael 改变文字大小

jquery - 一次变灰多个相同 css 类的标签

javascript - 通过使用事件监听器而不是内联 onclick 或 jquery 更改带有按钮的 div 的颜色

javascript - 多个点击监听器被添加到同一个 html 元素中

javascript - 向下滑动时反转 slider

javascript - 单击外部/悬停在外部时关闭的下拉菜单

javascript - 使用 jQuery 将复杂的标点字符串拆分为大于 2 个字符的常规单词

javascript - Kendo ASP.NET MVC 包装器限制