1

我正在尝试制作一个通用的 JavaScript 函数来获取标签中的条目集合。例如:

有清单

<ul class="collection">
    <li>First Entry</li>
    <li>Second Entry</li>
    <li>Third Entry</li>
</ul>

带 div

<div class="collection">
    <div >First Entry</div >
    <div >Second Entry</div >
    <div >Third Entry</div >
</div>

带桌子

<table class="collection">
    <tr>First Entry</tr>
    <tr>Second Entry</tr>
    <tr>Third Entry</tr>
</table>

这是我所拥有的:

function getEntry(a)
{
    var elementCollection = document.getElementsByTagName('*');

    for(var i = 0; i < elementCollection.length; i++)
    {
        if(elementCollection[i].className.toString() === "collection")
        {
            var filteredCollection = elementCollection[i].children;

            alert(filteredCollection[a].innerHTML);
        }
    }
}

如果我处理列表或 div,这正是我想要的,但是当我通过表格运行它时,如果 a=0,他会给我所有条目,如果 a!=0,则什么也不给我

表的行为是否不同,或者我做错了什么?


header()重定向后php会话丢失

这是我第一次尝试创建会话。此外,成功登录后,我使用 header() 函数重定向页面,但随后在重定向页面上我不再有会话。有代码:

创建会话:

function userLogin($user){
    session_start();
    $_SESSION['username'] = $user;
    header("Location: /~klemeno/vaja10?" . SID);
    exit;
}

当浏览器重定向我时,我尝试像这样回显会话:

if(isset($_SESSION['username'])){   
    echo $_SESSION['username'];
}
else{
    echo "No session :(";
}
4

1 回答 1

4

是的,您的 HTML 无效,因为它不包含<tbody>元素,因此浏览器会为您插入它,就像表格单元格一样。

因此,当您table使用 , 并使用.children[0]时,您将获得<tbody>包含所有元素的新元素<tr>,这解释了为什么它会为您提供所有条目。

当然,如果您使用.children[1]或大于0,则没有孩子,因为您只有一个tbody

于 2012-12-09T23:28:49.370 回答