2012-02-15 2 views
0

У меня есть выпадающий список внутри тега <td> в строке таблицы. Мне нужно изменить его на текстовое поле или кнопку текстового поля + динамически в зависимости от некоторой логики. Любая помощь в том, как я могу это достичь?Удалить выпадающее меню и динамически добавить текстовое поле внутри тега <td> с помощью jQuery

Вся таблица, содержащая <td> и <tr>, вместе с элементами управления была сгенерирована динамически.

Заранее спасибо.

+1

Не могли бы вы привести пример кода того, что вы пытаетесь сделать. Это было бы полезно для понимания того, где вы находитесь, и позволить нам помочь вам дальше оттуда. – mason81

+0

Можете ли вы изменить HTML или вам нужен jQuery? – henryaaron

+0

Хорошо, я объясню это немного больше. Каждая строка имеет четыре тега , каждый из которых имеет выпадающий элемент управления внутри него. Существует несколько строк таким же образом. Теперь для каждой строки выпадающий фрагмент четвертого тега необходимо изменить на текстовое поле или текстовое поле + в зависимости от некоторой логики с выпадающим списком в первом теге . Надеюсь, я смогу сделать этот вопрос понятным? – Anupam

ответ

0

Вы можете поместить <div id="dynamic"></div> тег внутри <td> и вы могли бы использовать что-то вроде:

document.getElementById("dynamic").innerHTML=""; 

, а затем:

document.getElementById("dynamic").innerHTML="<input type='text' />"; 
+0

Это работает для меня отлично !!! Большое спасибо! Я использовал id вместо «динамического», и он работает как шарм! – Anupam

2

Посмотрите на метод jQuery replaceWith, который заменяет каждый элемент в наборе согласованных элементов предоставленным новым контентом.

Нечто подобное поможет вам.

$('table td select').replaceWith('<input type="text" />'); 
+0

Это, вероятно, сработает, но что, если OP захочет вернуть его снова? Наверное, лучше переключиться? –

+0

@ subt13 - Это не упоминается в вопросе, иначе я бы позаботился об этом. Если вы так думаете, будет много «что, если?» с точки зрения OP. – ShankarSangoli

+0

вы правы, вопрос OP не стоит отвечать, потому что действительно непонятно, чего хочет OP. В принципе, все ответы предполагают то, что хочет OP. Я просто подумал, что это может улучшить ваш ответ, чтобы добавить это. –

1

Я предполагаю, так как это <table> вы имеют несколько <td> и вы спрашиваете, как изменить html для этого конкретного <td> с этим выпадающим списком в нем? Есть много способов: select that element in jQuery, но я думаю, что у вас будет самая удача, просто указав id для этого <td>. Поскольку вы создаете этот динамически уникальный идентификатор для этого <td>, это самый простой способ позже обратиться к элементу, чтобы вы могли сбросить html в этом элементе. Если у вас есть несколько <td> с выпадающими меню, вы можете даже вставить идентификатор (например, 45 в приведенном ниже примере), чтобы вы могли изменить только это <td>.

+0

Вы правы!Я действительно добавил идентификатор для каждого тега , потому что я чувствовал, что мне это нужно и пригодится! Я продолжу и добавлю идентификатор для каждого тега , как вы указали! Это облегчило бы мою работу! – Anupam

+1

Удерживайте, если у вас есть идентификатор для tr, тогда просто используйте это. Что-то вроде $ ("tr_45 td: nth-child (2)"). Html (... См. Http://api.jquery.com/nth-child-selector. Также кажется, что вы новичок, пожалуйста, участвуйте в SO и проголосуйте за ответы и принимайте, если вам нравится ответ. –

+0

Так что в соответствии с вашим первым ответом я могу использовать это: $ ('# tdwithdropdown_45'). html (''); Внутри .html (....) раздел Я просто добавляю и т. д., и это должно работать, правильно? Что делать, если я хотел добавить два элемента управления, например сказать текстовое поле и кнопку в том же ? – Anupam