1

好吧,标题说明了一切。我的 javascript 函数构建了一些“块”并使用<ul><li>创建它们。问题是,它会删除<li>网页上的所有其他内容。

编辑:(好吧,我假设该函数导致了这个。删除我的意思是:它们完全消失了,查看浏览器中的 HTML 源代码只显示我<ul></ul>,没有<li></li>,它们已经消失了)

给网页的<ul><li>不同的类没有效果,它仍然删除<li></li>

我怎样才能防止这种情况?

JS函数(只是它的一部分):

//Board build up
function setBlocks() {
    bR = 0;
    counts = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    var mR = 5, mC = 6;
    var tempFloor, tempRow, tempBlock;
    var floors = $('ul');
    floors.empty();
    for (var f = 0; f < 4; f++) {
        bM[f] = [];
        for (var r = 0; r < mR; r++) {
            bM[f][r] = [];
            tempRow = $('<li></li>');
        $(floors[f]).append(tempRow);
        for (var c = 0; c < mC; c++) {
            var randomNoRequired = true;
            var randomClass;
            while(randomNoRequired) {
                randomClass = Math.round(Math.random() * 10 + 0);
                if (counts[randomClass] < 6 || bR >= 66) {
                    randomNoRequired = false;
                }
            }

etc etc etc

JS 使用的 HTML:

<div id="a2">
                    <ul></ul>
                    <ul></ul>
                    <ul></ul>
                    <ul></ul>
                    <a class="x"></a>
                </div>

网页上的其他 HTML<li></li>被删除:

<div id="scoreboard-overview">
        <ul> 
             <li>
             test
             </li>
etc etc etc

任何帮助表示赞赏

亲切的问候,莫里斯

4

4 回答 4

2

那是因为你打电话

var floors = $('ul');
floors.empty();

编辑 - 只选择 ul 内部 <div id="a2">使用

$('div#a2 ul');
于 2012-04-26T12:21:41.850 回答
1
var floors = $('ul');

这一行基本上选择了页面上的所有 ul 元素

如果您只想使用 ul(s):

var floors = $('div#a2 ul');
于 2012-04-26T12:20:41.723 回答
1
var floors = $('ul');
floors.empty();

ul这将删除页面上 every 的所有后代节点。

于 2012-04-26T12:21:07.887 回答
0

为什么要使用 jquery 选择器声明字符串?这:

 tempRow = $('<li></li>');

应该:

 tempRos="<li><\/li>"
于 2012-04-26T12:22:21.080 回答