javascript:检查标签是否彼此相邻

时间:2014-06-11 21:01:33

标签: javascript jquery html text tags

所以这就是问题所在:我想检查<x-statement>旁边的元素<p>是否正确,并且它们之间没有文字。 所以这将返回true:

<div>
     <x-statement>[discover.prev]</x-statement>
     <p>Go forward<p>
</div>

但这不会:

<div>
     <x-statement>[discover.prev]</x-statement>
     im in the way herr der
     <p>Go forward<p>
</div>

这是我试过的:

if($(this).next().is('p')){
    alert("p is next to you");
}

2 个答案:

答案 0 :(得分:0)

<div id="div1">
     <x-statement>[discover.prev]</x-statement>
     <p>Go forward<p>
</div>

<div id="div2">
     <x-statement>[discover.prev]</x-statement>
     im in the way herr der
     <p>Go forward<p>
</div>

var exp = /<x-statement>.*<\/x-statement>\s*\n*<p>.*<\/p>/;
alert(exp.test($("#div1").html()));
alert(exp.test($("#div2").html()));

JSFiddle上的示例: http://jsfiddle.net/PL9pN/

答案 1 :(得分:0)

这是使用DOM方法的更强大的功能

function nextIs(self, tag) {
    return self ? ((function(el) {
        while(el && el.nodeValue && el.nodeValue.trim() == '' ) el = el.nextSibling
        return el;
    })(self.nextSibling).tagName || '').toLowerCase() === tag : false;
}

可以用作

var element = document.querySelector('x-statement');
var isNextP = nextIs(, 'p');

FIDDLE