Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery前置打开标记追加关闭标记_Javascript_Jquery_Append_Prepend - Fatal编程技术网

Javascript jQuery前置打开标记追加关闭标记

Javascript jQuery前置打开标记追加关闭标记,javascript,jquery,append,prepend,Javascript,Jquery,Append,Prepend,首先,我熟悉。wrapAll(),这不是我需要的。我有一些无法更改的标记,需要将所有内容包装在中 以下是我试图做的: $('nav[role=“breadcrumb”]ul a')。包装('li>'); $('nav[role=“breadcrumb”]ul li:last')。在('li>之后); $('nav[role=“breadcrumb”]ul')。追加('') 健康选择胆固醇试剂盒 jQuery只适用于完整的元素,不能只附加结束或开始标记 如果ul没有任何其他列表项,您可以简

首先,我熟悉。
wrapAll()
,这不是我需要的。我有一些无法更改的标记,需要将所有内容包装在
  • 以下是我试图做的:

    $('nav[role=“breadcrumb”]ul a')。包装('li>');
    $('nav[role=“breadcrumb”]ul li:last')。在('li>之后);
    $('nav[role=“breadcrumb”]ul')。追加('')
    
    
    
      健康选择胆固醇试剂盒

    jQuery只适用于完整的元素,不能只附加结束或开始标记

    如果ul没有任何其他列表项,您可以简单地使用wrapInner

    $('nav[role="breadcrumb"] ul').wrapInner("<li />");
    
    $('nav[role=“breadcrumb”]ul').wrapInner(
  • );
  • 如果它确实包含LI的,最简单的方法是分离它们,包装内部,然后附加它们

    var $lis = $('nav[role="breadcrumb"] ul > li').detach();
    $('nav[role="breadcrumb"] ul').wrapInner("<li />").prepend($lis);
    
    var$lis=$('nav[role=“breadcrumb”]ul>li').detach();
    $('nav[role=“breadcrumb”]ul').wrapInner(“
  • ”).prepend($lis);
  • 首先尝试创建您的
  • ,然后将选择器附加到其中:

    var $li = $('<li>').append('nav[role="breadcrumb"] ul a');
    
    var$li=$(“
  • ”).append('nav[role=“breadcrumb”]ul a');
  • 然后使用$li替换或附加到您喜欢的任何位置。

    .contents()
    将获取所有子节点,包括文本节点

    $('nav[role="breadcrumb"] ul').contents().filter(function() {
       return $.trim($(this).text())!=="";
    }).wrap('<li/>');
    
    $('nav[role=“breadcrumb”]ul').contents().filter(函数(){
    返回$.trim($(this).text())!=“”;
    }).wrap(“
  • ”);

  • 编辑:添加了过滤方法以消除空白文本节点

    是否有任何黑客攻击?我能做我正在尝试的事情吗?我很感谢你的帮助,但不幸的是,这似乎并不能解决问题。wrapInner的第一位代码将UL中的所有内容包装在一个LI标记中,而我需要As和最后一位文本都包装在LI中。当使用jQuery将每个A包装在一个LI中,然后将代码与$lis一起使用时。。。似乎什么也没有发生:(如果没有UL中的纯文本,这将很容易。您尝试过我的第二个代码段吗?它应该考虑到UL中存在LI。是的,我尝试过使用$('nav[role=“breadcrumb”]UL a')。wrap('LI>
  • ');然后是第二个代码段中的两行代码,但它没有做任何事情:(最后一行仍然没有包装。哈哈,这太接近了!但我的UL中确实有两个空的LIs,这让事情变得有点糟糕:(谢谢你的帮助,但不幸的是我无法让它工作:(
    $('nav[role="breadcrumb"] ul').contents().filter(function() {
       return $.trim($(this).text())!=="";
    }).wrap('<li/>');