我想選擇其ID包含特定子字符串的所有元素。例如對於這些:如何選擇所有包含特定子字符串的元素?
<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>
我想獲得在id中具有foo
的元素。
我想選擇其ID包含特定子字符串的所有元素。例如對於這些:如何選擇所有包含特定子字符串的元素?
<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>
我想獲得在id中具有foo
的元素。
首先,您的標記似乎已損壞。一旦你解決這個問題是這樣的:
<div id="foobootoo"></div>
<div id="foowoohoo"></div>
<div id="foodoowoo"></div>
<div id="soobootoo"></div>
如果你使用這個XPath將只得到第一個三個節點://div[contains(@id, 'foo')]
。
如果你想選擇多個元素,只需給元素相同的類。
<div id="foobootoo" class="foo"><div>
<div id="foowoohoo" class="foo"><div>
<div id="foodoowoo" class="foo"><div>
<div id="soobootoo" class="foo"><div>
你嘗試類似...
$result = $xml->xpath("div[contains(@id,'foo')]");
着眼於CSS3選擇器(例如,看到這個Web page)。您可以使用以下的選擇:
div[id*="foo"]
,你會選擇所有包含在ID字符串「foo」的div。
不過,如果你希望只以「富」開頭的ID的div,使用
div[id^="foo"]
如果你重新排列的div的ID如下:
<div id="foo-bootoo"><div>
<div id="foo-woohoo"><div>
<div id="foo-doowoo"><div>
<div id="soo-bootoo"><div>
可以使用方法:
div[id|="foo"]
選擇所有其ID以foo開始和ID的其餘部分由一個連字符分隔的div(因此,僅前三)。
而且,如果你重新排列你的div的ID如下(即,通過將字符串 「foo」 的ID結束):
<div id="bootoofoo"><div>
<div id="woohoofoo"><div>
<div id="doowoofoo"><div>
<div id="bootoosoo"><div>
你可以使用:
div[id$="foo"]
選擇所有以id結尾的div(即只有前三個)。
值得一提的是,還有其他選擇器,但這些選擇器似乎是符合您需求的選擇器。