所以这就是问题所在:我想检查<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");
}
答案 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');