无法获得数组

时间:2012-09-21 22:15:41

标签: javascript arrays append

我有点担心为什么这不起作用。

附录正在发挥作用。我已经获得了html中的所有锚点,但出于某种原因我可以使用jquery获取该数组。我开始怀疑是不是因为我用jquery添加了它们。

这会让一些人保持警觉,但实际上它不应该提醒任何事情

               //$('#swiffy-braces-diagram').html("<img src='/assets/uploads/images/brace-painter.png'/>");
             $('#swiffy-braces-diagram').css('background-image', "url('/assets/uploads/images/brace-painter.png')")
                 .append("<a href='' id='elastic-tie'>")
                 .append("<a href='' id='loop-in-archwire'>")
                 .append("<a href='' id='archwire'>")
                 .append("<a href='' id='bracket'>")
                 .append("<a href='' id='headgear-tube'>")
                 .append("<a href='' id='coil-spring'>")
                 .append("<a href='' id='tie-wire'>")
                 .append("<a href='' id='band'>")
                 .append("<a href='' id='hook'>")
                 .append("<a href='' id='elastic'>")
                 .append("<div id='description'>");
             });

            if( $('#swiffy-braces-diagram a').length == 0){alert('some');}

            $('#swiffy-braces-diagram a').each( function(i){
                $(this).mouseover( function(){
                    $('#swiffy-braces-diagram #description').html( description[i] );
                });
            });

2 个答案:

答案 0 :(得分:2)

您的代码目前包含语法错误。当你说,append()有效时,我猜你在事件回调中运行该代码,例如准备好了。

当我说得对时,请使用:

jQuery(
  function($)
  {
    $('#swiffy-braces-diagram').css('background-image', "url('/assets/uploads/images/brace-painter.png')")
                 .append("<a href='' id='elastic-tie'>")
                 .append("<a href='' id='loop-in-archwire'>")
                 .append("<a href='' id='archwire'>")
                 .append("<a href='' id='bracket'>")
                 .append("<a href='' id='headgear-tube'>")
                 .append("<a href='' id='coil-spring'>")
                 .append("<a href='' id='tie-wire'>")
                 .append("<a href='' id='band'>")
                 .append("<a href='' id='hook'>")
                 .append("<a href='' id='elastic'>")
                 .append("<div id='description'>");

                  // }); <--this has been removed


            if( $('#swiffy-braces-diagram a').length == 0){alert('some');}

            $('#swiffy-braces-diagram a').each( function(i){
                $(this).mouseover( function(){
                    $('#swiffy-braces-diagram #description').html( description[i] );
                });
            });
        });//<--the removed brackets now are here

请注意,我确实删除了追加()后的});

如果没有它,你将把就绪函数留在那里,其余的脚本将在之前执行你追加()所有这些元素。

答案 1 :(得分:1)

"<a href='' id='elastic-tie'>"不是HTML的有效内容。您需要关闭</a>标记,并且可能您也想要链接中的某些内容。

在链接中没有任何内容的情况下,它们不会占用页面上的任何空间,因此您永远不会在其上获得鼠标悬停事件。