javascript:检查标记是否相邻

javascript:检查标记是否相邻,javascript,jquery,html,text,tags,Javascript,Jquery,Html,Text,Tags,问题是:我想检查元素是否就在的旁边,并且它们之间没有文本。 因此,这将返回真值: <div> <x-statement>[discover.prev]</x-statement> <p>Go forward<p> </div> [discover.prev] 前进 [discover.prev] 我挡住了路,先生 前进 var exp=/.\s*\n**/; 警报(exp.test($(“#div1”

问题是:我想检查元素
是否就在
的旁边,并且它们之间没有文本。 因此,这将返回真值:

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

[discover.prev]
前进
[discover.prev]
我挡住了路,先生
前进
var exp=/.\s*\n**/;
警报(exp.test($(“#div1”).html());
警报(exp.test($(“#div2”).html());
JSFIDLE上的示例:
这里有一个使用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');

您忘记发布您尝试过但不起作用的JavaScript。
x-statement
不是有效的标记名
document.querySelector('x-statement')。nextSibling.tagName.toLowerCase()=='p'谢谢adeneo,工作起来就像charm@user3731759请注意,adeneo的代码可能无法在
nextSibling
认为只有空格的文本节点是兄弟节点的浏览器中工作。这是他们中的大多数。
<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()));
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');