- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码片段中的代码演示了在更改 disabled
属性后,我无法检索原始属性值,至少对于 disabled
属性而言是如此。 The jQuery docs暗示 element.getAttribute()
应该能够检索原始值。
但是,它没有检测到 select
最初未被禁用。
那么,这些文档有错吗? bool 属性有不同吗?最重要的是,有没有办法在使用 prop()
更改后获取原始值?
注意我正在使用 jQuery 1.8.3,它由 Opera 中的 Chromium 37 进行解释。
$('button').on('click', function() {
var $inputs = $('input, select');
$inputs.each(function() {
var $this = $(this);
var name = $this.prop('name');
console.log('before changing ' + name + '...');
console.log("\tgetAttribute: " + $this[0].getAttribute('disabled'));
console.log("\tprop: " + $this.prop('disabled'));
console.log("\tattr: " + $this.attr('disabled'));
$this.prop('disabled', true);
console.log('after changing ' + name + '...');
console.log("\tgetAttribute: " + $this[0].getAttribute('disabled'));
console.log("\tprop: " + $this.prop('disabled'));
console.log("\tattr: " + $this.attr('disabled'));
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<button>Click</button>
<input name="input" type="text" disabled='disabled' />
<select name="select">
<option>Option</option>
<option>Option</option>
<option>Option</option>
</select>
编辑
不幸的是,问题位于 .prop() vs .attr()当涉及到诸如禁用之类的 bool 属性时,实际上并没有回答问题。考虑这个 fiddle :http://jsfiddle.net/garreh/uLQXc 。在1.8.3下运行良好。现在,考虑这个 fork ,它改变了“disabled”而不是“blah”:http://jsfiddle.net/wrn1ryjq/1 。输入最初未禁用。更改后,即使 attr 也会返回“已禁用”。因此,attr 返回原始值的常见答案似乎并不正确。我的问题仍然存在:用 prop 改变它后,我如何找出原来的禁用状态?
编辑嗯,这很尴尬。当然 attr()
不会检索原始值。文档说不会。真正的问题是,在使用 with prop
禁用后,如何从输入中获取禁用的原始值。
不幸的是,根据this comment ,这是不可能的:/不过感谢您的建议。
最佳答案
由于 prop
仅当元素具有该属性时才起作用,因此当涉及到那些未禁用的输入字段时,您将不会获得它返回的任何值。
使用 attr
也存在同样的问题,因为它会检查元素是否具有该特定属性。
相反,我建议您使用 $('#someId:disabled').length
来查看您正在查找的元素是否具有禁用属性。选择器将只能找到那些具有 disabled
属性的元素,因此它将导致 0
或 1
.
查看此fiddle .
HTML
<input id="input1" disabled />
<input id="input2" disabled="true" />
<input id="input3" />
Javascript
$('#result').append($('#input1:disabled').length);
$('#result').append($('#input2:disabled').length);
$('#result').append($('#input3:disabled').length);
关于javascript - getAttribute() 不检索禁用的原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069517/
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: ServletContext and Session object 我觉得很奇怪 session.getAttrib
var objects = document.getElementsByTagName('object'); for (var i=0, n=objects.length;i
我正在尝试将给定元素的自定义属性与具有特定类的所有其他元素的自定义属性进行比较...这就是我所拥有的 function choose(el){ var text = $(el).getAttr
如何处理错误无法读取未定义的属性“getAttribute”。我正在使用 DOMParser 来获取 xml 标记的 type 属性。此 xml 标记有时可以是 FirstTag,有时可以是 Seco
我正在做一个任务,要求我们为矩形定义一个类并为其配备各种方法,其中两个是 getHeight()和 getWidth() , 除了 return this.height; 之外不应该做任何事情和 re
我正在使用 jQuery var editor = CodeMirror.fromTextArea($('#upEditor'), { stylesheet:'monokai.css' })
我正在开发一个触摸屏项目,并尝试显示一些图像(将一行分成几个段落,并使用每个段落的背景来显示图像),并为所选图像添加边框(只能是一个)选择),现在我需要通过onclick()显示移动的图像,例如,首先
你好,我是 JS 新手,代码中可能有更多错误。但我不明白为什么 getAttribute 不是一个函数。 测试: test('TESTING', () => { const filterNod
我不确定这里出了什么问题,但是当我尝试运行我的代码时,wishlist.getAttribute 返回 null,但如果我专门调用 getElementById,它将返回我需要的值。虽然我需要 wis
我需要根据第一个框的选择来同步这两个下拉框。 我不能为此使用 “value” 标记,因为代码库从其他地方提取这些值。 以下代码无效: html One Two Three Four
所以我有一个带有动态生成表格的页面,看起来像 行
以下代码片段中的代码演示了在更改 disabled 属性后,我无法检索原始属性值,至少对于 disabled 属性而言是如此。 The jQuery docs暗示 element.getAttribu
如何获取一个元素的所有属性?就像我下面的例子一样,我一次只能得到一个,我想拉出所有 anchor 标签的属性。 $dom = new DOMDocument(); @$dom->loadHTML(ht
我是 Javascript 新手。我想编写一个 javascript 代码,当我单击一个按钮时,会弹出警报窗口并写入数据消息属性。这是我的代码: click function pop() {
我正在尝试使用以下代码获取图像的值: image = doc.querySelector("img.product-pic-image").getAttribute("src"); 我总是得到 nul
我正在尝试获取 angualar.js 中的一些请求属性。我可以使用 request.getAttribute() 在 jsp 方法中获取相同的属性。 我不知道如何获取相同的内部 Angular 。您
我似乎偶然发现了一个看似错误的等价物,使用以下命令生成维基百科主页 (wikipedia.org) 的所有输入的列表: var inputs = Array.prototype.slice.call(
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能在这里 on-t
我正在寻找一种方法来获取存储在变量中的类的值(对于我的示例“AAABC”)。我使用 getAttribute 方法尝试了不同的关键字,但没有成功。关键字“class”显然给了我“gwt-Label”,
我是JAVA编程的新手。 我想使用 android.media.ExifInterface 来保存和恢复一些字节数组作为 exif 信息。 String str = new String(byte
我是一名优秀的程序员,十分优秀!