在Firebase博客的Vanilla Javascript中将“孩子的ID”设置为父母的唯一ID的父母

时间:2018-11-22 11:43:01

标签: javascript firebase-realtime-database

我正在创建一个博客。在我的loadBlog函数中,我创建了一个div,它为每个加载的博客帖子获取一个唯一的ID:div.id = newPost.postID; 在此div的div中,我嵌入了一个按钮,我要实现的是进入编辑模式(可以在其中编辑和删除帖子)时,该按钮用于获取父代ID的父代附加的字符串+“删除”。

例如

  

div id = postId-0

设置删除按钮的

  

button id = postId-0-delete

function enterEditingMode() {
    document.getElementsByClassName('admin-help-editing-hidden')[0].classList.toggle('admin-help-editing');
    let button = document.getElementById('editing-mode-button');
    if (button.innerHTML === "Editing mode") {
        button.innerHTML = "Exit editing mode";
        const parentObject = document.getElementsByClassName('post-title');
        [...parentObject].forEach((parent, i) => {
            let addDeleteButton = document.createElement('button');
            addDeleteButton.innerHTML = "Delete";
            addDeleteButton.setAttribute("onclick", "deletePost()");
            addDeleteButton.id = //how to set dinamic id
            addDeleteButton.className = "delete-button";
            parent.appendChild(addDeleteButton);
        })
    }
else if (button.innerHTML === "Exit editing mode") {
        ...
        }
    }
}

function loadMyBlog() {
    let posts = firebase.database().ref('posts/');
    posts.on('child_added', function(snapshot) {
    let newPost = snapshot.val();
    let div = document.createElement('div');
    div.className = 'blog-post';
    div.id = newPost.postID;
....}

1 个答案:

答案 0 :(得分:1)

我自己弄清楚了。之所以无法得到它,是因为当我尝试添加addDeleteButton.id时。它实际上在DOM中还不存在。这就是为什么我无法获得父母的身份证。我必须先添加appendChild(addEditButton) addDeleteButton.id = addDeleteButton.parentNode.parentNode.id + "-delete";