2

我正在尝试在 Dropzone.js 中编写删除函数。为了做到这一点,我需要文件的 id 上传方式。

我试图获得一个对象的属性,但没有成功。现在我正在尝试使用 jQuery 来获取具有它的跨度的值或文本内容。

在此处输入图像描述

这是结构的屏幕截图。我正在尝试的 jQuery 代码是:

var loooot = $(".dz-filename").parents('span').text();

更具体地说,我正在尝试获取数字 1_1477778745352 (这是一个时间戳)。

Dropzone代码如下:

<script>

var listing_id = "1"; 

// these are the setting for the image upload
Dropzone.options.pud = {
acceptedFiles: ".jpeg,.jpg,.png,.gif",
uploadMultiple: false,
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 1, // MB
addRemoveLinks: true,
maxFiles: 10,
renameFilename: function (filename) {return listing_id + '_' + new Date().getTime();},
init: function() 
{
this.on("removedfile", function(file) 
  { 
  var loooot = $("span", ".dz-filename").html();
  alert(loooot);
  });
}
};
</script>
4

4 回答 4

1

尝试使用 JQuery.text();获取内部文本更新:将其与 DOM 一起使用.ready()

深度选择器

$(document).ready(function(){
  var fname = $("#pud .dz-filename span [data-dz-name]").text();
});

或(如果您的表单是动态的)

function get_fname(){
return $("#pud .dz-filename span [data-dz-name]").text();
}

然后使用get_fname();

于 2016-10-29T22:44:04.527 回答
0

利用:

var loooot = $("span", ".dz-filename").html();

工作演示

var loooot = $("span", ".dz-filename").html();
alert(loooot);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="dz-filename">
  <span>Test</span>
</div>

编辑

span由于您正在动态设置文本,因此 jquery 可能会在您设置它之前读取 HTML,为了防止这种情况,您必须在时间戳之后调用此函数作为回调(如果没有看到您如何设置文本,我无法帮助您)。所以做类似的事情:

function setSpan(callback) {
    // Set your stuffs

    // Call the callback
    callback();
}

function getText() {
    // I'm the callback witch get the html
}

//Onload
setSpan(getText());

编辑

对于 dropzone,您可以queuecomplete在队列之后使用启动函数,我不是 dropzone 专家,但我想:

init: function () {
    this.on("queuecomplete", function (file) {
        //Get span html
        alert("All files have uploaded ");
    });
  }
于 2016-10-29T22:21:14.833 回答
0

我找到的工作解决方案是这样的:

init: function() 
  {
  this.on("removedfile", function(file) 
    { 
    var loooot = $(file.previewElement).find('[data-dz-name]').text();
    alert(loooot);
    });
  }
于 2016-10-30T07:38:10.117 回答
0

它变得未定义,因为 dropzone 动态工作,使用这个:

$('body').find(".dz-filename").find('span').text();

最好的方法是声明 dropzone:

//first declare somewhere variable
var my_drop;

// then on creating dropzone:
my_drop = new Dropzone('.dropzone', { 
/* your setup of dropzone */ 
});

然后,您可以使用以下方法检索有关文件的信息:

my_drop.files[0].name

代表的[0]第一个文件,如果有多个文件,您可以遍历它们。

于 2016-10-29T22:24:15.937 回答