简单javascript帮助

简单javascript帮助,javascript,Javascript,嗨,我是javascript新手,基本上正在努力解决这个问题。 当我点击链接以在占位符中显示图像时。 如果占位符1由1.jpg、2.jpg或3.jpg使用,则将占位符1与该图像一起保留,并使用占位符2。 希望这是有道理的 谢谢你的帮助 <script type="text/javascript" language="javascript"> function showPic (whichpic) { if (document.getElementById) {

嗨,我是javascript新手,基本上正在努力解决这个问题。 当我点击链接以在占位符中显示图像时。 如果占位符1由1.jpg、2.jpg或3.jpg使用,则将占位符1与该图像一起保留,并使用占位符2。 希望这是有道理的 谢谢你的帮助

<script type="text/javascript" language="javascript">
function showPic (whichpic) { 
    if (document.getElementById) { 
        document.getElementById('placeholder1').src = whichpic.href
        if (whichpic.title) { 
            document.getElementById('desc').childNodes[0].nodeValue = whichpic.title; 
        } else { 
            document.getElementById('desc').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue; 
        } 
        return false; 
    } else { 
        return true; 
    } 
}
</script>

<div style="border: 1px solid #999; padding: 1em; margin: 0 0 15px 0;">
<ul>
<li><a onclick="return showPic(this)" href="/images/1.jpg" title="A bunch of bananas on a table">some bananas</a></li>
<li><a onclick="return showPic(this)" href="/images/2.jpg" title="Condiments in a Chinese restaurant">two bottles</a></li>
<li><a onclick="return showPic(this)" href="/images/3.jpg" title="Seashells on a table">some shells</a></li>
</ul>

<p id="desc">Choose an image to begin</p>
<img id="placeholder1" src="/images/blank.gif" alt="" />
<img id="placeholder2" src="/images/blank.gif" alt="" />
</div>

函数showPic(whichpic){
if(document.getElementById){
document.getElementById('placeholder 1').src=whichpic.href
如果(图片标题){
document.getElementById('desc').childNodes[0]。nodeValue=whichpic.title;
}否则{
document.getElementById('desc').childNodes[0]。nodeValue=whichpic.childNodes[0]。nodeValue;
} 
返回false;
}否则{
返回true;
} 
}

选择要开始的图像


如果您询问如何找出元素中属性的值,您可以像这样使用jQuery

var src = $('#placeholder1').attr('src');

然后,您可以使用index of或其他字符串函数来确定src属性是否与您感兴趣的文件名相反。

我必须承认,我对“getAttribute”方法了解不够,无法解决它的跨浏览器兼容性问题

function showPic (whichpic) { 
    if (document.getElementById) {
        if(document.getElementById('placeholder1').getAttribute("src") == "/images/blank.gif") {
           document.getElementById('placeholder1').src = whichpic.href;
        } else {
           document.getElementById('placeholder2').src = whichpic.href;
        }
        if (whichpic.title) { 
            document.getElementById('desc').childNodes[0].nodeValue = whichpic.title; 
        } else { 
            document.getElementById('desc').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue; 
        } 
        return false; 
    } else { 
        return true; 
    } 
}

编辑:将“.src”切换为“getAttribute(“src”)”

在变量中存储对占位符1的引用。检查占位符1的src,看看它是否是您提到的任何图像(在我的示例中,我使用正则表达式来实现这一点)。如果是这些图像之一,请将变量重新指定给占位符2的引用:

function showPic (whichpic) { 
    var ph = document.getElementById('placeholder1');
    if (/[1-3]\.jpg/.test(ph.src)) {
        ph = document.getElementById('placeholder2');
    }
    ph.src = whichpic.href;
    var descChild = document.getElementById('desc').childNodes[0];
    descChild.nodeValue = whichpic.title || whichpic.childNodes[0].nodeValue;
}

注意,您不需要测试是否存在
document.getElementById
。如果浏览器支持JavaScript,那么它支持
document.getElementById

请澄清您的问题。是的。。。。包括一个50kB的库,只用于
$(“#占位符1”).attr('src')
,而不是
document.getElementById('placeholde1').src
,以及它提供的所有其他好处,但是嘿,你有权选择你的意见/偏好:)也许李不知道jQuery,因此,我刚刚向他介绍了一些可以让他的生活更轻松的东西:Dhanks Anthony我读过一些关于jQuery的书,只是从来没有使用过它:/I尝试所有3个答案,然后看看我首先使用哪一个:)@Lee我只触及了它的表面,但它确实很强大。但是如果你不打算经常使用它,那么也许最好编写你自己的一套实用功能来帮助你的网站。我刚开始编程:)才开始学习php和sql大约2个月。这对我来说是一条陡峭的学习曲线。现在开始对不同语言的不同语法感到困惑:(谢谢,这看起来像我想要的,但由于某些原因,当我单击以显示另一个图像时,占位符2不会出现。看起来我忽略了一个事实,即从.src属性读取将返回文件的完整路径。因此“http://www.foo.com/path/to/image.jpg”而不是“/path/to/image.jpg”。若要修复此问题,请使用:.getAttribute(“src”)而不是上面编辑的.src.来包含此内容。