저는 꽤 오랫동안이 작업을 해왔고 이미지 태그 다음에 링크와 스팬으로 이미지를 래핑했습니다.PHP DOM 이미지를 링크로 감싸고 이미지 태그 앞에 스팬을 추가하십시오.
<a href="">
<img src="">
<span></span>
</a>
하지만 내가 원하는 와트입니다 : 내가 알 variatons의 종류 및
$img->parentNode->appendChild($dom->createElement('span'), $img);
의 위치와 insertBefor의 사용을 시도
<a href="">
<span></span>
<img src="">
</a>
e() 내 코드에서 모든 종류의 장소에 대한 그리고 난 완전히 PHP DOM 물건에 새로운이기 때문에 완전히 아이디어가 있어요. 내 출처 :
foreach($dom->getElementsByTagName('img') as $img)
{
$fancyHref = $dom->createElement('a');
$clone = $fancyHref->cloneNode();
$img->parentNode->replaceChild($clone, $img);
$clone->appendChild($img);
$img->parentNode->appendChild($dom->createElement('span'));
};
업데이트 : 내 목표를 명확히하기 위해 : 나는 HTML의 img 태그가 있습니다.
<img src="" />
<a href="">
<span class=""></span>
<img src="" />
</a>
후하기 전에 그것은 PHP는 DOM을 통과 한 후 나는 이미지 태그 전에 span 태그와 함께 태그에 싸여 img 태그를 원하는 이 작업을 수행하는 순간의 코드 (범위 없음)
foreach($dom->getElementsByTagName('img') as $img)
{
$src = $img->getAttribute('src');
$filename = substr(strrchr($src , '/') ,1);
$filename = preg_replace('/^[.]*/', '', $filename);
$filename = explode('.', $filename);
$filename = $filename[0];
if($this->imagesTitles[$this->currentLanguage][$filename] !== '')
{
$img->setAttribute('title', $this->imagesTitles[$this->currentLanguage][$filename]);
$img->setAttribute('alt', $this->imagesTitles[$this->currentLanguage][$filename]);
}
else
{
$img->removeAttribute('title');
$img->removeAttribute('alt');
}
$classes = explode(' ', $img->getAttribute('class'));
if(!in_array('no-enlarge', $classes))
{
$fancyHref = $dom->createElement('a');
$span = $dom->createElement('span');
$span->setAttribute('class', 'magnifier');
$fancyHref->setAttribute('class', 'enlarge');
$fancyHref->setAttribute('rel', 'enlarge');
$fancyHref->setAttribute('href', $img->getAttribute('src'));
if($img->getAttribute('title') !== '')
{
$fancyHref->setAttribute('title', $img->getAttribute('title'));
$fancyHref->setAttribute('alt', $img->getAttribute('title'));
}
$clone = $fancyHref->cloneNode();
$img->parentNode->replaceChild($clone, $img);
$clone->appendChild($img);
$img->parentNode->insertBefore($span, $img);
}
$img->setAttribute('class', trim(str_replace('no-enlarge', '', $img->getAttribute('class'))));
if($img->getAttribute('class') === '')
{
$img->removeAttribute('class');
}
}
"parentNode"의 이러한 기능은 어디에 있습니까? –
사물을 똑바로 찍으려면 이미 이미지가 있고 그 앞에 스팬을 넣고 싶습니까? – Itay
예. HTML에 이미지 태그가 있습니다. 내가하고 싶은 것은 그것 주위에 a를 감싸고 앞에 span 태그를 넣는 것입니다. 나는 내가 원하는 것을 설명하기 위해 질문을 업데이트했다. –