【发布时间】:2016-03-18 16:23:51
【问题描述】:
php foreach 循环的显示/隐藏或切换有点问题。
我的 php 是这样的:
<?php
$keys = $personArray;
foreach($keys as $key){
$key = get_field_object($key);
$key_NAME = $key['name'];
$key_NAME2 = $key['name2'];
$key_TYPE = $key['type'];
echo '<div style="display:block;margin-botton:4px;">';
echo '<span id="kname" class="hide">' . $key_NAME . '</span><span id="kname2" class="hide"' . $key_NAME2 . '</span>';
echo ' | ';
echo '<span id="ktype" class="hide">' . $key_TYPE . '</span>';
echo '</div>';
}
//I will get;
/*
JamesJack | Artist
SamMike | Singer
CurtTrisha | Dancer
*/
?>
但我需要带有复选框的 jQuery 显示/隐藏 key_TYPE 并在 key_NAME 和 key_NAME2 之间切换
我怎样才能正确地做到这一点?我当前的代码只影响第一行结果。
剩下的代码如下:
<style>
.hide{display:none;}
</style>
<script>
jQuery(document).ready(function($){
$('input[type="checkbox"]').click(function(){
if($(this).attr("value")=="changename"){
$("#kname").toggle();
}else{
$("#kname2").toggle();
}
if($(this).attr("value")=="hidetype"){
$("#ktype").toggle();
}
});
});
</script>
<html>
<label><input type="checkbox" name="vauChange" value="changename"> Toggle name</label>
<label><input type="checkbox" name="vauChange" value="hidetitle"> Hide Title</label>
</html>
我的代码运行不正常。
【问题讨论】:
-
id="kname"- ALL 的元素具有相同的 ID,这是非法的。 DOM id 在整个文档中必须是唯一的。因为它们必须是唯一的,getElementById 只会返回它找到的第一个匹配元素,因为在同一个文档的其他地方不可能有任何重复的 id。 -
那么我该怎么做才能使每个输出都独一无二?如果我点击 chkbox,所有元素都会像它应该隐藏的那样隐藏吗?
标签: php jquery foreach toggle show-hide