Я пытаюсь добавить некоторые данные в таблицу HTML, используя jquery, который работает нормально, но когда данные являются нулевыми или пустыми, я должен добавить еще один div к этой таблице HTML.

Пытаюсь вот так

$("#table").append(data.d[i].one!=""?
    "<td id='divs'>
       <input id="+ data.d[i].one +" type=" + "checkbox" + " class=" + "cbCheck" + ">
       <label  for="+ data.d[i].one +"></label>
    </td>":"<div></div>");

Но это не работает, пожалуйста, помогите мне, как это исправить ...

3
Raviteja 10 Янв 2017 в 11:59

3 ответа

Лучший ответ

Никогда не понимаю, почему кто-то использует это

$("#table").append(data.d[i].one!=""?
    "<td id='divs'>
       <input id="+ data.d[i].one +" type=" + "checkbox" + " class=" + "cbCheck" + ">
       <label  for="+ data.d[i].one +"></label>
    </td>":"<div></div>");

Вместо этого:

    //class declaration
    function YourTableCell(name, value) {
       this.input = document.createElement('input');
       this.input.value = value;
       this.input.name = name;
       this.label = document.createElement('label');
       this.label.text = 'My Label';
       this.container = document.createElement('td');
       this.container.appendChild(this.input);
       this.container.appendChild(this.label);
    }


    //application buisness logic
    if(data.d[i].one != ''){
      var cell = new YourTableCell(data.d[i].name, data.d[i].value);
      $("#table").append(cell.container);
    } else {
      $("#table").append(document.createElement('div'));
    }

Используя этот подход, вы можете инкапсулировать создание ячеек таблицы внутри вашего класса и сделать свой код более читабельным и многократно используемым. Кроме того, как я теперь вижу, вы пытаетесь добавить td внутри чего-либо с идентификатором #table, и похоже, что это неправильно, потому что вы должны добавить td внутри {{X3} } .

Кроме того, используя это, вы можете получить ссылки на все объекты, такие как input s и избежать $ ('input, select, textarea') селекторов.

1
degr 10 Янв 2017 в 09:17

Вы можете использовать:

if( data.d ){
    //Your code
}

Это проверит, является ли data.d NULL или пустой строкой "".

Если вы хотите проверять каждую итерацию, используйте индекс i:

if( data.d[i] ){
    //Your code
}

Надеюсь это поможет.

Просмотрите https://stackoverflow.com/a/5515349/4281779.

0
Community 23 Май 2017 в 12:00

Вы могли бы использовать что-то вроде этого,

var html = '<div></div>';

if(data.d[i].one) {
    html = '<td id="divs"><input id="' + data.d[i].one + '" type="checkbox" class="cbCheck"><label  for="' + data.d[i].one + '"></label></td>';
}

("#table").append(html);
0
Thaadikkaaran 10 Янв 2017 в 09:04