我正在修复页面上的jQuery代码片段。该页面的基本思想是列出用户并显示用户的委托(在<div id="show_hidden_delegate">
中,如果用户的<select id="delegate_form">
的值设置为1. HTML代码由我们的应用程序生成,所以我无法分辨页面上会出现多少用户。但提到的<select>
始终跟着被操纵的<div>
。
所以我试图找到id为delegate_form
的select值,在.each()
循环中检查并显示/隐藏div。贝娄是部分工作的代码。
$(document).ready(function() {
$('*[id*=delegate_form]').each(function(index){
if($(this).val() == '1'){
$("#show_hidden_delegate").show();
alert("Index = " + index);
} else {
$("#show_hidden_delegate").hide();
alert("Index = " + index);
}
});
});
在我的测试输入中,第一个选择的值是1,秒是2(不能有任何不同的值)。但执行后,div
首先会消失。当我试着
使用$("#show_hidden_delegate").eq(index).hide()
什么也没发生。我在哪里弄错了?
仅供参考:第一个警报显示“Index = 0”,第二个“Index = 1”
答案 0 :(得分:0)
如果我理解,只需:
$(document).ready(function() {
$('*[id*=delegate_form]').each(function(index){
if($(this).val() == '1'){
$(this).next().show();
} else {
$(this).next().hide();
}
});
});
答案 1 :(得分:0)
好的,我已经找到了解决方法。问题是,我只能编辑生成HTML的XML文件。我在XML中看到的很多东西都不会显示在页面上。这与脚本无关,它取决于XML文件中的其他内容。
但这是解决方法。
$(document).ready(function() {
$('*[id*=delegate_flag]').each(function(index){
if($(this).val() == '1'){
$('*[id*=show_hidden_delegate').eq(index).show();
//alert("Index = " + index);
} else {
$('*[id*=show_hidden_delegate').eq(index).hide();
//alert("Index = " + index);
}
});
$('*[id*=delegate_form]').each(function(index){
$(this).change(function(){
if($(this).val() == '1'){
$('*[id*=show_hidden_delegate').eq(index).show();
//alert("Index = " + index);
} else {
$('*[id*=show_hidden_delegate').eq(index).hide();
//alert("Index = " + index);
}
});
});
});
只有当我使用正则表达式找到要隐藏的div时,才能正确显示/隐藏它。我必须检查两次,因为一个页面包含组合以选择值id="delegate_form"
,其他页面包含隐藏值id="delegate_flage"
且没有组合。