在下面的代码中点击按钮对应的价格应该显示,点击这里文字shud隐藏但它没有工作没有任何反应
<body>
<?php $itemprice = array("$10","$3","$5","$7");?>
<?php $len = count($itemprice);
$i=0;
?>
<div class= "gallery">
<?php while ($i<$len):?>
<div class="index">
<div class="clickbtn">
<a id="hiddenprice-<?php echo $i; ?>" href="http://www.bookurl.com" onclick="show_price(<?php echo $i; ?>)" target="_blank">
Click Here to reveal price <?php echo $itemprice[$i]; ?>
</a>
<a id="revealedprice-<?php echo $i; ?>" style="display:none;" href="http://www.bookurl.com"><?php echo $itemprice[$i]; ?></a>
</div>
</div>
<?php $i++;endwhile;
?>
<script>
function show_price(<?php echo $i; ?>) {
document.getElementById('revealedprice-<?php echo $i; ?>').style.display = '';
document.getElementById('hiddenprice-<?php echo $i; ?>').style.display = 'none';
}
</script>
</div>
</body>
看到结果
答案 0 :(得分:4)
你在PHP代码和javascript代码之间乱七八糟。
此外,您还不清楚您尝试使用该锚点做什么。如果您定义了href,则用户将导航到该URL,除非您取消导航,否则onclick代码与您的情况无关。
在我看来,你想要这样做。请注意,如果在新窗口或新标签页上打开网址,则无法控制100%。
<强> HTML 强>
<a id="hiddenprice-<?php echo $i; ?>" href="#" onclick="show_price(<?php echo $i; ?>)">
Click Here to reveal price <?php echo $itemprice[$i]; ?>
</a>
<强> JS 强>
<script>
function show_price(num) {
document.getElementById('revealedprice-' + num).style.display = '';
document.getElementById('hiddenprice-' + num).style.display = 'none';
window.open("http://www.bookurl.com");
return false;
}
</script>
在num
上注意show_price
,添加window.open
和return false
以取消默认锚行为(导航到href)
答案 1 :(得分:1)
不要相信你看到的一切:)
如果您使用之前的答案而不理解,会附加什么?试试,但你会有一个惊喜。
说明
<a id="hiddenprice-5" href="http://www.bookurl.com" onclick="show_price(5)" target="_blank">
Click Here to reveal price 52
</a>
Show_price函数现已明确定义。但。但是你正在使用一个链接 - 一个标签 - 。当你要点击时,效果会很好,但仍然有重定向:用户永远不会看到显示的价格。
为了避免这种“亲吻酷效应”,你必须使用另一个标签而不是a,或者添加一个返回false;到你的show_price函数。