jquery以前动态添加的文本区域的ID

时间:2010-09-13 12:11:23

标签: jquery forms text upload textarea

我正在尝试破解wordpress插件以获得一些额外的功能。

因为它已经调整了所以我可以添加一个新的textarea与它自己的上传框。

我现在需要一种方法来获取新textarea的ID,因此我可以将上传的文件文本传回正确的textarea。

这是我的代码:

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>

目前看来,这不起作用。我得到“未定义”,而不是我希望的文本区域的ID。

添加的每个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)。

如何获取与提交按钮“配对”的textarea的ID值。

谢谢!我试过.prev和.closest,但可能错误地使用了它。

1 个答案:

答案 0 :(得分:0)

由于 <{em> <textarea>,您需要traverse略有不同,请将其替换为:

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

有了这个:

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

这一直到<label>然后回到<textarea>上一个兄弟...你的选择器在.live()调用时不是很正确,至少不是标记,但如果你得到一个警报,我会认为它只是完全已发布且工作正常。