2016-04-25 12 views
-1

例HTMLを使用して、テキストではない:チェックでは、JavaScript

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero.</p> 
<p><img src="..." alt=""/></p> 
<p><iframe width="" height="" src="...">....</iframe></p> 
<p> Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urn</p> 

はどのようにして、可能な場合、それらのpタグが効率的に、純粋なJavaScriptを使用してテキストの代わりにタグを含めることで入手できますか?

結果は次のようになります。私は、このようにそれに近づいてきた

<p><img src="..." alt=""/></p> 
<p><iframe width="" height="" src="...">....</iframe></p> 

var ptags = document.querySelectorAll(".container p"); 
for(var i = 0; i<ptags.length; i++) { 
if(ptags[i].querySelectorAll("img, iframe").length > 0) { .... } 
} 

答えて

1

あなたは、実際のHTMLコンテンツで作業していると仮定すると、あなたはあなたのすべてをつかむためにdocument.querySelectorAll()機能を使用することができますfilter()関数を使用して、子要素を含まない要素を除外します。

// Grab an array of all of your <p> elements 
var paragraphs = Array.prototype.slice.call(document.querySelectorAll('p'), 0); 
// Filter out those paragraphs that do not contain any elements 
paragraphs = paragraphs.filter(function(p){ return p.childElementCount > 0; }); 

あなたの編集に基づいて、単にあなたのループであなたの要素のそれぞれのchildElementCountプロパティをチェックできます。

for(var i = 0; i < ptags.length; i++) { 
    // Check if this element has children 
    if(ptags[i].childElementCount > 0) { 
     // This has children, do something 
    } 
} 
+0

おかげリオン、childElementCountプロパティは、私が探していたものでした。 – g13

関連する問題