jQuery从DOM树中提取正确的值

时间:2014-10-02 21:12:51

标签: javascript jquery

我正在使用Kendo UI进行文件上传。我想从DOM树中获取正确的属性。

在我的cshtml上我有:

<input name="target" id="target" type="file" />

然后我想获取每个文件的值 - 所以我在我的js中执行以下操作:

  $('input[name="target"]').each(function () {
        console.log($('input[name="target"]'));
        // get the value of each file - do something with value if set - not if blank
   });

在控制台中,我看到以下内容 - 两个输入,一个带有#target,一个没有 - 不确定原因:

enter image description here

如果我展开0:input元素,我得到以下内容,所以在这种情况下输入值有一个值:

  

值:“C:\ fakepath \ MyDoc.txt”

展开1:input#target并向下滚动到空白的值为“”。

在我的.each中(函数如何提取每个输入的值,所以在pesudo代码中我想做类似的事情:

foreach (input in (input[name="target"])
{
   if (input.val() != "")
   {
       alert("Value Found");
       alert(input.val();
   }
   else
   {
       alert("No Value Found");
   }
}

在我的$ .each中执行Brian所说的和一个console.log(this)给出:

    <input name="target" type="file" data-role="upload" multiple="multiple" autocomplete="off" tabindex="-1" style="display: none;">

<input name="target" id="target" type="file" data-role="upload" multiple="multiple" autocomplete="off">

因此,这会拉出两个单独的输入但不包含value属性,在一种情况下,它将是文件“C:\ Desktop \ MyDoc.txt”,另一个值将为空白“”

1 个答案:

答案 0 :(得分:0)

this回调中使用each而不是jQuery选择器

使用this

检索$(this).val();

有关this的更多信息,请阅读有关this和对象方法here的文档

$('input[name="target"]').each(function () {
    console.log($(this).val()); // 'this' is each iteration of the each loop
});