我可以在change()函数中为同一个$('element.class')运行嵌套的$('!ele
Can I run nest a $('element.class').each() function within the change() function for the same $('element.class')?
具体来说,每当一个元素的值发生变化时,我都想迭代页面上的每个元素。
因此,套用我的代码:
$('select.filterbox').change(function() {
// stuff
$('select.filterbox').each(function() {
// other stuff
});
});
"东西"都执行得很好,但"其他东西"不会发生
这是的完整代码
// On Filterbox Change
$j('select.filterbox').change(function() {
// Show All Rows
$j('#table1 tr').show();
// For Each Filterbox
$j('select.filterbox').each(function() {
var selVal = $j(this).attr('value');
var col = $j(this).closest('th').parent().children().index($j(this).closest('th'));
alert('Column '+val+' : '+selVal);
// If Selected Value Not Empty
if(selVal != "") {
// For Each Row
$j('#table1 tr').each(function() {
var $tds = $j(this).find('td');
var cellVal = $tds.eq(col).text();
cellVal = $j.trim(cellVal);
// If td text != selected
if( cellVal != selVal ) {
// Hide this row
$j(this).hide();
}
});
}
});
});
回答:是的,你可以。我最近做了很多类似的事情。事实上,你的代码应该这样做。很可能你在代码中犯了一些小但重要的错误,需要查找并修复。我最近也做了很多类似的事情。
更有用的答案是:做一些事情来弄清楚故障在哪里。用一些明显的东西替换"$('select.filterbox').each()"调用,比如在页面的大块上调用.hide()。确保代码行被调用。如果正在调用它,请将"$('select.filterbox').each()"调用放回,然后将hide()调用移到其中。如果这样做有效,那么您就知道它至少运行了一次。将hide()调用更改为(this).hide(),看看是否可以看到它被标识为哪一个。一旦你缩小了让你失望的地方,你就会更容易弄清楚自己做错了什么。
您可以这样做,但将单独的事件处理程序附加到许多元素并不是最佳选择。您可以利用事件冒泡,只需将单个处理程序附加到其父容器即可。例如:
$("#filters").change(function (evt) {
// evt.target will give you actual element that changed
$("#filters select.filterbox").each(function () {
// other stuff
});
});
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 将文本框链接到由按钮运行的javascript公式
- 为什么不是't运行此Javascript的Chrome
- ng应用程序使脚本无限运行
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 如何在运行时在angular 2中加载外部js脚本
- 通过id和class属性获取元素
- 传递 $('.class').每个函数作为 arugment 无法运行函数
- 我可以在change()函数中为同一个$('element.class')运行嵌套的$('!ele
- 单击按钮运行函数并添加Class
- Angularjs: ng-class和CSS动画(只运行一次)