簡體   English   中英

javascript:檢查標記是否彼此相鄰

[英]javascript: Checking if tags are next to each other

所以這是問題所在:我想檢查元素<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");
}
<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/

這是使用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');

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM