0

そのクラスまたはID名に次のようなキーワードが含まれているHTML ページのdiv、span、p などを取得したいとします。

one& two&three

たとえば、私はこの HTML を持っています:

<div class="this_one">
  Need this !
</div>
<div id="some_three">
  Need this again !
</div>
<span id="two_this">
  Need again
</span>
<p class="NOT">
Not want this
</p>

つまり、(div、p、span) のような特別なタグ内にテキストを取得したいということです。それらの ID または CLASS には、(one、two、...) のような単語が含まれています。

それらを検出する方法は?

たとえば、simpledom、 またはPHPDOM、または任意の方法で。

4

5 に答える 5

1

jquery を使用すると、[name*="value"]セレクターを使用して実行できます。

var patterns = ["one","two","three"];

var text = "";
for(i in patterns) {
    text += $("[id*='"+patterns[i]+"']").text();
    text += $("[class*='"+patterns[i]+"']").text();
 }

alert(text);

デモフィドル

于 2014-08-13T14:02:49.270 に答える
1

次のようにjqueryセレクターを使用して、クラスごとに要素をループできます。

$("[class=className]").each(function( index ) {
   // do something here
});

複数のクラスを選択するには:

$("[class=className1], [class=className2]").each(function( index ) {
   // do something here
});

JSFiddle の例を次に示します

于 2014-08-13T14:03:58.333 に答える
1

JQuery のセレクターを使用できます。

// elements who's class contains one
$('[class~="one"]').click(function() {
   // do stuff
});
于 2014-08-13T14:07:29.333 に答える
1

PHP を使用する場合は、DOMDocument+を使用できますDOMXpath。私は教祖ではありませんが、次のxpathようなことができます:

$sample_markup = '<div class="this_one">
  Need this !
</div>
<div id="some_three">
  Need this again !
</div>
<span id="two_this">
  Need again
</span>
<p class="NOT">
Not want this
</p>';

$dom = new DOMDocument();
$dom->loadHTML($sample_markup);
$xpath = new DOMXpath($dom);

$search = $xpath->query('
    /html/body//*[
        contains(@class|@id, "one") or
        contains(@class|@id, "two") or
        contains(@class|@id, "three")
    ]
');

foreach($search as $node) {
    $value_inside_that_node = trim((string) $node->nodeValue);
    echo $value_inside_that_node . '<br/>';
}

出力する必要があります:

Need this !
Need this again !
Need again
于 2014-08-13T14:41:12.487 に答える