如何将div附加到函数范围内具有特定id的另一个div

时间:2015-05-14 13:54:35

标签: javascript jquery html css twitter-bootstrap

我正在尝试使用迭代XML模型的简单方法构建我的DOM。

我似乎无法引用<div id='content'>来附加我的内容。我有以下功能来创建一个面板:

function getPanelTemplate(controlData)
{
    var header = $('<div/>', 
        {
            'class' :'panel panel-heading',
            'id'    :'header',
            'text'  : $(controlData).attr('label')
        }
    )

    var body = $('<div/>', 
        {
            'class' :'panel panel-body',
            'id'    :'content'
        }
    )                

    var template = $('<div/>', 
        {
            'class':'panel panel-default',
        }
    )

    template.append(header)
    template.append(body)
    return template
}

然后我有另一个函数调用这个函数,然后我想将内容添加到'content'div:

function createCheckBox(controlData)
{
    var panel = getPanelTemplate(controlData)
    var checkBox = $('<input type="checkbox"/>')

    //panel.content.append(checkbox)
    //panel.getElementByID('content').append(checkbox)
    //$(panel, '#content').append(checkbox)

    return panel
}  

三条注释掉的代码行都没有为我工作。有人能告诉我我做错了吗?

另外,我认为jQuery只有全局范围。我是否正确地认为我不能在引用 局部变量的函数中使用jQuery?

1 个答案:

答案 0 :(得分:2)

首先,您调用了var checkBox,并且您正在添加名为checkbox的内容。所以,即使你有正确的实现,它也不会有用。

要解决您的问题,您可以这样做:

$(panel).find('#content').append(checkBox);

使用上面的代码,您需要在content元素中查找ID为panel的元素。