我有一个连接到jQuery函数的链接。它位于<li>
内,带有另一个链接。代码在这里:
<li id="aps_pdf1">
<a target="_blank"" href="....">1testpdf.pdf</a>
<span style="padding-left:40px">
<a id="delete-aps_pdf1" class="delete_pdf" title="Delete this PDF." href="#">Delete</a>
</span>
</li>
当点击delete-aps_pdf1
时,我试图用文件上传控件替换第一个链接,用jQuery替换html。到目前为止,这是我的代码:
jQuery(document).ready(function($) {
$('.delete_pdf').each(function(i,e) { //grab the link class delete-pdf
var id = $(this).attr('id').replace(/delete-/, '');
var li = $(this).closest('li').attr('id');
$(this).click(function(){
//alert('Clicked! '+ id);//$(this).attr('id')); //THIS WORKS WHEN CLICKED
//alert(li);
$(li).replaceWith('<input type="file" style="width: 700px;" name="' + id + '" id="' + id + '" />');
});
});
我的替换似乎根本不起作用。我对jquery比较新,我已经完成了这个阅读文档,所以我确定我在某个地方遗漏了一些东西。
非常感谢向正确方向迈出的一步!
答案 0 :(得分:3)
您正在尝试替换字符串。改为传递jQuery对象:
jQuery(document).ready(function($) {
$('.delete_pdf').each(function(i,e) { //grab the link class delete-pdf
var id = $(this).attr('id').replace(/delete-/, '');
var li = $(this).closest('li');
$(this).click(function(){
//alert('Clicked! '+ id);//$(this).attr('id')); //THIS WORKS WHEN CLICKED
//alert(li);
$(li).replaceWith('<input type="file" style="width: 700px;" name="' + id + '" id="' + id + '" />');
});
});
答案 1 :(得分:0)
您正在获取li id(.attr(“id”)),这意味着您需要在其他查询的前面连接#
$('#'+li).replaceWith('<input type="file" style="width: 700px;" name="' + id + '" id="' + id + '" />');
答案 2 :(得分:0)
你能不能抓住父李:
var li = $(this).parent('li');
答案 3 :(得分:0)
您在以下行中有错误
var li = $(this).closest('li').attr('id');
应该是
var li = $(this).closest('li');
或
var li = $(this).closest('li#' + id);