jQuery获取跨度的文本内容

时间:2016-10-29 22:20:16

标签: javascript jquery jquery-selectors dropzone.js parents

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

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

enter image description here

这是结构的截图。我正在尝试的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 个答案:

答案 0 :(得分:1)

使用:

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

工作Demo

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

修改

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

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 ");
    });
  }

答案 1 :(得分:1)

它变得未定义,因为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]代表的第一个文件,如果超过一个文件,您可以循环浏览它们。

答案 2 :(得分:1)

尝试使用JQuery&#39; .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();

答案 3 :(得分:0)

我发现的工作解决方案是:

init: function() 
  {
  this.on("removedfile", function(file) 
    { 
    var loooot = $(file.previewElement).find('[data-dz-name]').text();
    alert(loooot);
    });
  }