JavaScript解决方案删除特定标记,但将其余部分保留在特定DIV中

时间:2011-01-23 作者:Matt

我有一个div结构,看起来像这样。。。

<div class="gallery_lightview">
    <div id="lg_image">
        <a href="http://www.website.com/?iframe=true&width=100%&height=100%" rel="prettyPhoto[iframes]" class="lightview_main" title="TITLE HERE">
            <img class="alignnone" src="HEADER.jpg" alt="" />
        </a>
        <a class="lightview" rel="prettyPhoto[pp_gal]" href="http://pathTophoto.jpg"> </a>
    </div>
</div>
这是在Wordpress管理员中完成的,当我使用

<p><?php the_content(); ?></p>
我要做的是删除<a> 仅在div类“gallery\\u lightview”之间显示的标记,并离开<img> 标签因此,一旦全部剥离,看起来就像。。。

<div class="gallery_lightview">
    <div id="lg_image">
        <img class="alignnone" src="HEADER.jpg" alt="" />
    </div>
</div>
基本上这是一个不可点击的图像。这可能吗?这是一个移动网站,我不希望它出现在标题中。真的希望它是一个位于"the_content" Wordpress呼叫(这是"gallery_lightview" div 代码为。

我选择不使用jQuery,因为它的移动设备会增加负载。实际上,图书馆唯一要做的就是删除<a> 标签

有什么想法吗?

我想让Javascript生活在。php页面模板,因此我不必进入每一篇文章并添加Javascript。这可能吗?

ADDITION

我基本上想停用任何<a> “标记入”gallery_lightview“因此img“标记被留下并显示

2 个回复
SO网友:sorich87
<script type="text/javascript">
function removeLink() {
    theAs = document.getElementById(\'lg_image\').childNodes; // get all children of div#lg_image

    for( i = 0; i < theAs.length; i++ ) { // loop through the children
        if( theAs[i].nodeType != 3 ) { // if the child is not a whitespace,
            theImg = theAs[i].innerHTML; // it is the a which contains the img, so save its content
            break;
        }
    }

    document.getElementById(\'lg_image\').innerHTML = theImg; // set the img as content of div#lg_imagei
}

function addEvent(obj, evType, fn) { 
    if (obj.addEventListener) { 
        obj.addEventListener(evType, fn, false); 
        return true; 
    } else if (obj.attachEvent) { 
        var r = obj.attachEvent("on"+evType, fn); 
        return r; 
    } else { 
        return false; 
    } 
}

addEvent(window, \'load\', removeLink);
</script>
SO网友:Pippin

尚未测试,但请尝试以下操作:


var cnt = $(".lightview_main").contents()
$(".lightview_main").replaceWith(cnt);
$("a.lightview").remove();

结束

相关推荐

404从wp-Content/Uploads/获取图像时

我在获取图像时获得404状态,http仍然包含该图像。图像显示在浏览器中,但404代码中断了一些应用程序。对wp内容/上载/的调用被重定向到。htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteRule (.*) /index.php?getfile=$1 [L] </IfModule>&