setAttribute的问题

时间:2014-04-23 13:03:36

标签: php dom

在下面的代码中,

$item->setAttribute('onclick','target_popupAFB(this)');

让我头疼,它写了值target_popupAFB(this),但它没有写出名字。结果是=" target_popupAFB(this)"

我是使用DOM的新手

$dom = new DOMDocument();
$dom->loadHTML($doc);
$dom->preserveWhiteSpace = false;
$links = $dom->getElementsByTagName('a');
foreach ($links as $item) 
{
    $tempsrc=$item->getAttribute("href");
    if(substr($tempsrc,-4)==".mp3")
    {
        $item->removeAttribute('target');
        $item->setAttribute('target','msp');  
    }   
    $tempta=$item->getAttribute("target");
    if($tempta!=="msp")
    {   
       $item->removeAttribute('target');
       $item->setAttribute('target','_blank');  
     }
    if(substr($tempsrc,-4) ==".jpg" || substr($tempsrc,-4) ==".bmp" || substr($tempsrc,-4) ==".gif" || substr($tempsrc,-4) == ".png")
    {
       $imgA=explode("/",$tempsrc);
       $c=count($imgA);
       if($imgA[1]=="AFBEELDINGEN" && $imgA[0]=="..")
       {        
          $img=end($imgA);      
          $item->setAttribute('href','http://'.$_SERVER['SERVER_NAME'].'/AFBEELDINGEN/afb.php?img=' .$img);
          $item->setAttribute('onclick','target_popupAFB(this)');         
       }
    }
}
$doc = $dom->saveHTML();

1 个答案:

答案 0 :(得分:0)

这不是主要内容:{qq} https://developer.mozilla.org/fr/docs/DOM/element.setAttribute,你没有删除属性并设置一个新属性。如果存在,setAttribute将覆盖attribut。

当你想要添加事件而不是addEventListener(doc:https://developer.mozilla.org/fr/docs/DOM/element.addEventListener)时,你应该使用setAttribut。 很高兴它的帮助。 GL