如何将css样式应用于动态JavaScript数组
How to apply css styles to dynamic JavaScript array?
我正在尝试将CSS样式应用于通过JSON对象动态添加到HTMLDOM的输入元素。
从本质上讲,Ajax调用接收一个带有数据数组的JSON负载。一些KnockoutJS代码然后在DOM上foreach来动态添加行。
我正在尝试将样式添加到值小于所需值的输入中。最重要的是,我知道元素对DOM是动态的,访问它们时遇到了问题,所以我可以应用样式。我尝试过jQuery和纯JavaScript,但无法访问新添加的字段。
我该怎么做?
我创建了一个非常复杂的小提琴来创建输入。但我不知道如何对那些值小于当前年份的输入进行样式设置。
我正在尝试将.k-invalid样式添加到值小于当前年份的NextPaymentDate输入中。
var $incomeWrapper = $("#income-wrapper");
$incomeWrapper.find("input#iNextPaymentDate_" + i).removeClass("k-valid").addClass("k-invalid");
以上内容不起作用。
http://jsfiddle.net/kahanu/rdb00n76/9/
您可以在选择器中添加一个过滤函数,如下所示:
$('input[id^="iNextPaymentDate_"]').filter(function(index) {
return parseInt($(this).val().split('/')[2]) < new Date().getFullYear();
}).addClass('k-invalid');
Fiddle:http://jsfiddle.net/rdb00n76/10/
上面的代码选择id以iNextPaymentDate_
开头的所有输入,然后应用一个过滤器,根据当前全年来评估当前元素。为了做到这一点,我在/
上拆分日期字符串,并取第三项,应该是年份。然后我将值强制转换为int,并比较当前年份。
您实际的过滤函数可能比上面的要坚固得多。例如,可以包含moment.js进行比较。
我认为ListDateValidation
内部的forEach
循环执行得太早了。如果我对jsfiddle的理解是正确的,那么只要实例化FinancialViewModel,就会运行它,但即使调用发生在其他所有事情之后,Knockout此时可能还没有更新DOM。
有几种方法可以检查这一点,如果正确的话,请注意防范。
但现在,为了检查是否是的情况,我建议在self.ListDateValidation()
方法调用之前立即放置一些逻辑:在这个逻辑中,你应该有一种快速而肮脏的方法来确定这些元素中是否存在-你能暂时(只是为了调试)给这些元素id
属性(只需增加一个int),然后运行类似的东西吗
if (document.getElementById("test-id-1") !== null) {
console.log("element found");
}
这将告诉您是否运行日期验证太早。
如果您需要一种确定元素添加时间的方法,请搜索"javascript poll dom element added"。如果你不介意,这里有一个粗略的方法:
var elmnt,
elmntId = "YOUR ELEMENT'S ID HERE",
tmr = window.setInterval(function() {
elmnt = document.getElementById(elmntId);
if (elmnt) {
window.clearInterval(tmr); // stop the search
// do something
}
}, 15);
此方法每隔15毫秒轮询一次DOM,然后在发现具有指定ID的元素存在时停止。15ms对应于浏览器运行的最小平局增量——如果这一增量后来降低了,那就太好了,但没有人会注意到这种情况下的差异。
- 动态Javascript表单不起作用
- 从脚本中的动态(javascript)网页获取信息
- 创建动态javascript对象
- HTML 5 帮助.使用websql数据库中的动态javascript渲染选项
- 更改动态 JavaScript 数据
- 将动态javascript变量附加到HTML标记.InnerHTML&insertAdjacentHTML都不正
- addEvenListener不'我不研究动态javascript
- 使用加载时的Codeigner动态javascript->看法
- JSON动态Javascript解析”;未定义”;
- jsf应用程序中的动态javascript
- UpdatePanel中自定义控件内的动态javascript
- 使用wro4j创建动态javascript捆绑包
- 如何在PHP中包含动态Javascript页面的静态HTML结果
- 动态JavaScript与rail一起徘徊
- 在 Symfony 2 中生成动态 JavaScript 的正确方法
- For 循环中的动态 Javascript 条件
- 如何确定调用动态 JavaScript 文件的页面和 ASP.net 中的用户
- 是否可以缓存具有指向动态JavaScript的链接的HTML页面
- 动态 javascript,用于检测复选框是否被选中并禁用相应的输入字段
- 如何制作具有键和值组的动态JavaScript数组