首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

用jquery操作html,向<ul><li></li><li></li></ul>的第

2014-01-23 
用jquery操作html,向ulli/lili/li/ul的第一li后面追加/ulul的问题head runatserver

用jquery操作html,向<ul><li></li><li></li></ul>的第一li后面追加</ul><ul>的问题
<head runat="server">
    <title></title>
    <script src="js/jquery-1.6.2.js" type="text/javascript"></script>
    <style type="text/css">
        .subitem{ margin: 5px 0;width: 500px;float: left;border-right: #ddd 1px dotted; min-height:400px; }
        .subitem ul{ width: 490px; margin: 0 0 0 10px;  list-style: none; }
        .subitem li{ width: 240px; line-height: 14px;overflow: hidden;  }
    </style>
    <script type="text/javascript">
        function OK() {
            $("#my_sp").after("</ul><ul>");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" onclick="OK()" value="点吧" />
        <div class="subitem">
            <ul>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li id="my_sp">
                    <a>看我后面是否被&lt;/ul&gt;&lt;ul&gt;分割开</a>
                </li>
                  //注:我想在这个位置 追加 </ul><ul> ,这样前面的</ul>与上面的配对,后面的<ul>后下面的</ul>配对
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
           </ul>
        </div>
    </div>
    </form>
</body>
问题是:浏览器好像自动将</ul><ul>解析配对,弄成了<ul></ul>,这样就反了,达不到效果?
我想之后变成这样:
           <ul>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li  id="my_sp">
                    <a>看我后面是否被&lt;/ul&gt;&lt;ul&gt;分割开</a>
                </li>
                </ul><ul>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
           </ul>


[解决办法]

,这句话怎么像骂人呢!

我的意思是,如果对于html,dom的东西比较了解的话,是不会像你那样弄的。
而且按一般人的想法,肯定是再新建一个ul,把其中一部分li搬到新的ul里面去,不会像你这样的搞法用jquery操作html,向<ul><li></li><li></li></ul>的第一li后面追加</ul><ul>的有关问题


引用:

function OK() {
$(".subitem").html($(".subitem").html().replace(/(<li.*?id="my_sp"[\s\S]*?<\/li>)/g,"$1</ul><ul>"));
 }

[解决办法]
innerHTML  vs dom操作(W3c)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
#select {
border: 1px solid red;
}

#select li {
background-color: #2aa;
padding: 20px;
}
</style>
</head>
<body>
<div class="subitem" id='cc'>
            <ul>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li id="my_sp">
                    <a>看我后面是否被&lt;/ul&gt;&lt;ul&gt;分割开</a>
                </li>
                  
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
                <li><a>烷烃及衍生物</a></li>
           </ul>
        </div>

<script>
function youWant(){
//var subitem0 = document.getElementById("cc");
var subitem0 = document.getElementsByClassName("subitem")[0];
var html = subitem0.innerHTML;

var newhtml = html.replace(/(<li.*?id="my_sp"[\d\D]*?<\/li>)/g,"$1</ul><ul>");
subitem0.innerHTML = newhtml;
}
youWant();

</script>

</body>
</html>

[解决办法]
引用:
(<li.*?id="my_sp"[\d\D]*?<\/li>) 什么意思

[\d\D]是所有字符包括换行 *代表0个或1一个以上[\d\D] $1是括号括起来的部分 可以多个括号 $1,$2,$3..
你上w3c看一下正则表达式就知道了

热点排行