0

对于以下代码(使用 JavaScript/jQuery),我正在我的网站上控制幻灯片/预览滑块类型小部件。它工作得很好。我们有小指示框,可以突出显示您所在的可用幻灯片。它们也可以工作。但由于某种原因,它们之间会出现一个单引号。我能够将其追溯到我在下面用大写字母评论过的那一行。您看到的最后一个单引号似乎是导致它的原因,但是当我删除它时,它会破坏代码。为什么需要这个单引号?我说不清它与什么相匹配。

for(var i = -1; i < numberOfSlides; i++)
    {
        $('#locationBar').append("<span class='locator' id='locator_" + i + "'><a></a></span>'");
//THE LAST SINGLE QUOTE HERE IS WHAT IS CAUSING THE QUOTES BETWEEN THE SLIDE INDICATORS. GETTING RID OF IT BREAKS IT THOUGH. INVESTIGATE.
        if(i < 0)
        {
            $('#locator_' + i).css('visibility','hidden');
            continue;
        }
        $('#locator_' + i).bind('click',function(){window.location=$('#link_' + currentPosition).attr('href');});
        $('#locator_' + i).hover(function(){

            var newPosition = 0;
            for(var j = 0; j < numberOfSlides; j++)
            {
                if($(this).attr('id') == "locator_" + j)
                {
                    newPosition = j;
                }
            }
            if(currentPosition==newPosition)
                return;

            jump(currentPosition,newPosition);


            currentPosition=newPosition;

            clearTimeout(delayTimer);
            delayScroll();
        });
    }
4

2 回答 2

0

只需转义字符串。
你得到额外的报价是有道理的。
你的行的结尾是

"'><a></a></span>'"

所以你得到双引号内的引号。

转义示例:

 $('#locationBar').append('<span class=\'locator\' id=\'locator_' + i + '\'><a></a></span>');
于 2012-04-19T18:59:51.817 回答
0

已编辑

在同一个句子中混合使用单引号和双引号可能会导致问题。

$('#locationBar').append('<span class="locator" id="locator_' + i + '"><a></a></span>');

虽然 user1277499 的答案也应该解决这个问题,但它不起作用?

于 2012-04-19T18:30:26.720 回答