在标签之后插入DIV

时间:2011-06-03 20:01:42

标签: javascript jquery internet-explorer-7

我有以下代码:

<script type="text/javascript">
    $(document).ready(function() {
        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>').insertBefore('body');
    });
</script>

基本上,我需要在<body>标记后面插入整个Div:

</head>
<body>
    <div id="tools"..
...

哪个适用于Firefox,但在IE 7中不起作用,我需要更改什么才能解决此问题?

3 个答案:

答案 0 :(得分:12)

您正在使用insertBefore。这会尝试将其置于headbody之间;不是你想要的。试试prependTo

答案 1 :(得分:2)

http://jsfiddle.net/XDFMt/

<script type="text/javascript">
    $(document).ready(function() {

        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>')
            .prependTo('body');

    });
</script>

答案 2 :(得分:2)

使用prependTo而不是使用insertBefore。 这样:

<script type="text/javascript">
    $(document).ready(function() {
        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>').prependTo('body');
    });
</script>

insertBefore在标记之前插入代码。这就是为什么它会给你带来麻烦。 你很幸运,Firefox将其修正为你想要的。 现在,prependTo将其插入到您的标记中,但在其所有内容之前。 ;)