如何忽略空的href和图片

时间:2019-03-15 09:41:18

标签: javascript html

我需要以下代码的帮助。谢谢。

问题: 如果“网站”或我的图片不可用,“名称”仍将显示为链接。 将会显示损坏的图像。

如果“网站”为空,有没有一种方法可以将“名称”显示为普通文本。如果我没有图片,它不会显示损坏的图片链接?

代码:

<script type="text/javascript">
    var absPath = 'http://www.example.com/images/contacts/'
    var CONTACTS = {};

    CONTACTS['this-0001'] ={
        name: 'Company Name 1',
        website: 'http://www.companyname1.com',
        address: 'Company 1, USA',
        tel: '+123234567',
        email: 'info@co1.com',
        extension: '.jpg'
    }

    CONTACTS['this-0002'] ={
        name: 'Company Name 2',
        website: '',
        address: 'Company 2, India',
        tel: '+23456789, +234567456',
        email: 'contact@company2.com',
        extension: '.jpg'
    }



    $(function(){

        var cid = getQueryVariable('cid');

       $('.cid-container').hide();

        if (cid !== false) {

            if(CONTACTS[cid] !== undefined) {
                $('.cid-container').show();

                $('.cid-name').html(CONTACTS[cid].name);
                $('.cid-name-link').attr("href", CONTACTS[cid].website);
                $('.cid-address').html(CONTACTS[cid].address);
                $('.cid-tel').html(CONTACTS[cid].tel);
                $('.cid-email-link').attr("href", "mailto:" + CONTACTS[cid].email);
                $('.cid-email').html(CONTACTS[cid].email);
                $('.cid-logo').html("<img src='" + absPath + cid + CONTACTS[cid].extension + "' />");
            }
            else {

            }
        }

    });

    function getQueryVariable(variable) {
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return false;
    }
</script> 


<div class="cid-container" style="text-align:center">
    <div>
        <h3>My Contacts</h3>
        <div class="cid-logo"></div>
        <p><a class="cid-name-link" target="_blank"><span class="cid-name"></span></a></p>
        <p class="cid-address"></p>
        <p class="cid-tel"></p>
        <p><a class="cid-email-link"><span class="cid-email"></span></a></p>
    </div>
</div>

谢谢,梅尔

1 个答案:

答案 0 :(得分:0)

如果未加载img,则可以在img标签上使用事件onerror进行更改。

<img src="image.gif" onerror="this.style.display = 'none';">

使用jQuery

$('.cid-logo').html("<img class='img' src='" + absPath + cid + CONTACTS[cid].extension + "' />")
$('.img').on( "error", function () { $(this).hide(); });