我正在进行动态过滤,但如果条件检查我无法做到。
我想将targetOS var插入<%if(data [i] .ListNames == targetOS ){%>
对于上面的语法,它给出了" targetOS变量未定义"
请帮忙。
$(document).on("change",'.COTSCurrentOSClass', function(e){
var selectedOS = $(this).val();
var targetOS = "OS::From::"+selectedOS;
<%for(var i=0;i<data.length;i++){%>
<%if(data[i].ListNames == ***targetOS*** ){%>
<%for(var j=0;j<data[i].Values.length;j++){%>
console.log("options are");
console.log(data[i].Values[j]);
<%}}}%>
($(this).parent().parent()).find(".COTSTargetOSClass").append("<option>Select One</option>");
});
&#13;
答案 0 :(得分:1)
你想做的事情是不可能的!
这是发生的事情的顺序:
1 - 在服务器中,ejs呈现为HTML
2 - 然后将HTML传输到浏览器
3 - 浏览器读取并处理javascript
JavaScript执行发生的时间晚于ejs
执行。
答案 1 :(得分:0)
@fmsf回复的内容是正确的。但是,如果你知道服务器上的targetOS值,那么在渲染ejs时你可以这样做:
在你的ejs文件中定义它:
var TARGET_OS = "<%= TARGET_OS %>";
然后当你通过ejs渲染页面时,将参数传递给它:
res.render(url, {TARGET_OS: "Your desired value here"}, function(err, html) {