Jquery脚本被视为span

van*_*sen 1 jquery

我有一个jquery选择器的奇怪问题,实际上它正在考虑将脚本作为span,因为以下代码不起作用:

<span id="sp1">
    <script></script>
    <span>1</span>
    <span>2</span>
</span> 
Run Code Online (Sandbox Code Playgroud)

我的selctor代码是:

<script> 
    if(typeof jQuery != 'undefined'){
        $j =jQuery.noConflict();
    }
    $j(function() {             
        alert($j("#sp1 span:nth-child(1)").text());
        alert($j("#sp1 span:nth-child(2)").text());
    });
</script>
Run Code Online (Sandbox Code Playgroud)

但是它将脚本作为第一个跨度返回,但我无法修改代码以获取第二个和第三个子节点,因为上面的示例代码是在循环中复制的,而在代码的其他部分中,没有脚本在跨度.如何在没有循环但只有正确的选择器的情况下实现这一目标?

Raj*_*amy 6

您看到的输出是预期的输出,因为:nth-child()无论元素性质如何,都会选择第n个子元素.所以在这种情况下你应该使用:nth-of-type()

尝试,

 alert($j("#sp1 span:nth-of-type(1)").text());
 alert($j("#sp1 span:nth-of-type(2)").text());
Run Code Online (Sandbox Code Playgroud)

DEMO