el filtrado de jquery tiene + no

De acuerdo, tengo elementos de la lista, algunos tienen un lapso, otros no.
En mi evento, quiero agregar el lapso cuando aún no lo tienen.

has() funciona bien, peronot() agrega el lapso a ambos ??

HTML:

<ul>
    <li>
        <p>item</p>
        <span class="spn">empty span</span>
    </li>
    <li>
        <p>item 2</p>
    </li>
<ul>
<hr>
<a class="add-span"href="#">check</a>

JS:

$("a.add-span").click(function() {
    $("li").each(function(index) {
        // $(this).has("span").find("span").append(" - appended");
        $(this).not("span").append('<span class="spn">new span<\/span>');
    })    
})

Respuestas a la pregunta(5)

Su respuesta a la pregunta