想象一下,我们希望得到HTML页面的 div,span,p等 类或 ID 的名称,包含一些关键词如:
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,包含我的文字,如(一,二,......)
如何检测它们?
例如,simpledom
或PHPDOM
或您想要的任何方式。
答案 0 :(得分: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);
答案 1 :(得分:1)
您可以使用类似这样的jquery选择器按类循环元素:
$("[class=className]").each(function( index ) {
// do something here
});
选择多个班级:
$("[class=className1], [class=className2]").each(function( index ) {
// do something here
});
这是JSFiddle示例:JSFiddle
答案 2 :(得分:1)
您可以使用JQuery's selectors:
// elements who's class contains one
$('[class~="one"]').click(function() {
// do stuff
});
答案 3 :(得分:1)
简单的方法是在页面中获取所需的所有div,span或任何其他标记。检查每个内容以及是否找到匹配项。使用标签的名称或ID。
此链接上的内容非常相似 Iterating through all the <div> tags on a page
也可以通过
答案 4 :(得分: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