在chrome中查找具有未定义值的元素
Find elements that have non defined value in chrome
我需要在jquery中选择元素值=="的查询。我在IE工作,但不是在chrome。我认为铬有另一个价值作为非定义的价值。
我查询:var images = $('#images>div>input[type=file][value=""]');
if(images.length > 0) // ...
正如你所看到的,有一个文件类型的输入元素,它给用户一个附加图像的机会。
<div id="files">
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div>
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div>
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div>
</div>
在IE中它工作得很好,但在chrome中它总是返回0个元素。
你有什么可以在所有浏览器上工作的解决方案吗?
这行得通:
$('#show').click(function(){
$(':input[type="file"]').each(function(){
if($(this).val() == this.defaultValue)
{
$(this).css('border','2px solid red');
}
});
});
与其尝试将内容与变量空字符串或'fakepath'等进行比较,不如将其与自己的defaultValue
进行比较,您将知道它是否已填充。
试试这个…
var images = $('#images > div > :file')
.filter(function() { return $(this).val().length; });
Chrome, Firefox &IE绝对可以得到value
(虽然Chrome只会告诉你文件名加上C:'fakepath'
)。
你的浏览器显示什么?
我合并了你的两个答案,最后我写了这个:
var images = $(':input[type="file"]').filter(function() {
return $(this).val()==this.defaultValue;
});
这个效果很好。谢谢。
相关文章:
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 使用+=运算符未定义对象中的第一个元素
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- Javascript可见元素返回未定义
- this.defaultValue 返回 select 元素的未定义
- Javascript-函数获取数组元素参数未定义/为null
- 按名称访问元素时未定义的值
- 如何将未定义的元素添加到数组中
- 元素变为未定义
- js中未定义QML元素
- 如何测试包含未定义元素的数组的相等性
- 当我尝试两个 DOM 中的 get 元素时,HTML 和 Xpath 结果未定义
- Angularjs ,a 在 foreach 中是未定义的,用类循环遍历元素
- 在 Ant 属性上应用 JavaScript “split” 的未定义元素
- 在regex拆分过程中会出现javascript未定义元素
- 文档就绪时未定义元素宽度
- 文档.如果未定义元素,getelementbyId将返回null
- 上的JavaScript & # 39; # 39;数组中“未定义”元素的操作符
- UndefinedError:列表对象没有未定义元素