#javascript #jquery
#javascript #jquery
Вопрос:
Мне нужно добавить
if (obj1[i][0] !== d1 amp;amp; row > -1) continue;
и
if (obj1[i][1] !== d2 amp;amp; row > -1) continue;
в зависимости от значения d1 and d2
но я не уверен, что я делаю неправильно.
if
оператор действует как фильтр, он допускает только те значения, которым присвоены d1
или d2
, например, если d1=1
он будет печатать только значения с 1, а не все значения в таблице.
$("#session_id, #start_date").on('change', function() {
var d1 = $( "#session_id" ).val();
var d2 = $( "#start_date" ).val();
$("#tbody").empty();
if(d1 != null || d1 != undefined){
kl1 = "if (obj1[i][0] !== d1 amp;amp; row > -1) continue;";
v(kl1);
}
if(d2 != null || d2 != undefined){
var kl = "if (obj1[i][1] !== d2 amp;amp; row > -1) continue;"
v(kl);
}
function v(data){
for (var i = 0; i < obj1.length; i ) {
data;
row ;
var newTr = table.insertRow(-1);
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][1]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][2]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][3]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][4]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][5]));
}
}
});
Комментарии:
1. Почему ваше
if
утверждение заключено в кавычки""
. И что, как вы ожидаете, произойдет, еслиcontinue
вызывается2.
if
оператор действует как фильтр, он допускает только те значения, которым присвоенd1
ord2
, например, еслиd1=1
он напечатает только 1, а не все значения в таблице3. У вас опечатка в вашем первом операторе if. Вы должны были указать параметр
kl1
для v функции, а неkl
Ответ №1:
Я думаю, это то, что вы хотите. Способ, которым вы собираетесь перейти statement
к loop
, на самом деле не работает.
Мы можем упростить следующий код
d1 != null || d1 != undefined
с помощью javascript, правдивого и ложного
Смотрите код ниже:
$("#session_id, #start_date").on('change', function() {
var d1 = $( "#session_id" ).val();
var d2 = $( "#start_date" ).val();
$("#tbody").empty();
for (var i = 0; i < obj1.length; i ) {
if (d1 amp;amp; obj1[i][0] !== d1 amp;amp; row > -1) continue;
if (d2 amp;amp; obj1[i][1] !== d2 amp;amp; row > -1) continue;
row ;
var newTr = table.insertRow(-1);
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][1]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][2]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][3]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][4]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][5]));
}
});
Ответ №2:
Просто удалите инструкции из значений и преобразуйте их в Boolean
и передайте в function
if(d1 != null || d1 != undefined){
kl1 = obj1[i][0] !== d1 amp;amp; row > -1
v(kl1);
}
if(d2 != null || d2 != undefined){
var kl = obj1[i][1] !== d2 amp;amp; row > -1
v(kl);
}
function v(data){
for (var i = 0; i < obj1.length; i ) {
if(data) continue;
row ;
var newTr = table.insertRow(-1);
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][1]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][2]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][3]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][4]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][5]));
}
}
Комментарии:
1. если я удаляю
""
из инструкций if, я получаю ошибкуUncaught SyntaxError: Unexpected token if
Ответ №3:
Присвоение, которое вы даете для k1, является строковым. Вот почему вместо передачи continue он передает инструкцию целиком. Пожалуйста, найдите ниже способ, которым вы можете это сделать.
if(d1 != null || d1 != undefined){
if (obj1[i][0] !== d1 amp;amp; row > -1) kl = "true";
v(kl);
}
if(d2 != null || d2 != undefined){
if (obj1[i][1] !== d2 amp;amp; row > -1) kl = "true"
v(kl);
}
function v(data){
for (var i = 0; i < obj1.length; i ) {
if(data=="true") continue
row ;
var newTr = table.insertRow(-1);
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][1]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][2]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][3]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][4]));
newTr.insertCell(-1).appendChild(document.createTextNode(obj1[i][5]));
}
Комментарии:
1. если вы присваиваете переменной оператор if, это выдает ошибку
Uncaught SyntaxError: Unexpected token if
2. Сделайте это таким образом, если (obj1[i][0] !== d1 amp;amp; row > -1) kl = «true»;