jquery ID предыдущей динамически добавленной текстовой области - PullRequest
0 голосов
/ 13 сентября 2010

Я пытаюсь взломать плагин WordPress, чтобы получить дополнительную функциональность.

В нынешнем виде я настроил его так, чтобы я мог добавить новую текстовую область с ее собственным полем загрузки.

Теперь мне нужен способ получить идентификатор новой текстовой области, чтобы я мог передать текст загруженного файла обратно в правильную текстовую область.

это мой код:

Jquery:

<script type="text/jquery">
jQuery(document).ready(function() {

jQuery('#upload_image_button').live("click", function() {
 var tblID = jQuery(this).closest("textarea").attr("id");
 alert(tblID); // returns undefined.


 formfield = jQuery('#upload_image').attr('name');
 tb_show('','media-upload.php?type=image&TB_iframe=true');
 return false;
});
</script>

как есть, это не работает. Я получаю "неопределенный", а не идентификатор текстовой области, как я надеялся.

разметка для каждого добавляемого DIV выглядит следующим образом, где * обозначает уникальный номер:

<div id="my*Div>
<textarea class="dfrads_textarea" id="dfrads_textarea_*" name="ad_*">
  <!-- my content -->
</textarea>
Upload:
<label for="upload_image"><input type="text" value="" name="upload_image_*" size="36" id="upload_image_*"><input type="button" value="Upload Image" id="upload_image_button_*"><br>Enter an URL or upload an image for the banner.</label>
</div>

поэтому, если я добавлю 2 дополнительных DIV, * в этом примере будет "2". (Второй DIV).

Как я могу получить значение идентификатора текстовой области, которая "связана" с кнопкой отправки.

спасибо! Я пробовал .prev и .closest, но предположительно использую их неправильно.

1 Ответ

0 голосов
/ 13 сентября 2010

Поскольку это не внутри <textarea>, вам нужно пройти немного по-другому, замените это:

jQuery(this).closest("textarea").attr("id");

С этим:

jQuery(this).closest("label").prev("textarea").attr("id");

Это доходит до <label>, затем возвращается к <textarea> предыдущему брату ... ваш селектор не совсем прав на вызов .live(), по крайней мере, не для разметки, но если вы получаете уведомление вообще, я предполагаю, что это просто не совсем , как отправлено и работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...