我真的很惊讶,我之前从未遇到过这个问题,但是似乎在元素上调用jQueries
.html()函数会忽略DOM中的更改,即它会返回原始源中的HTML。IE不会这样做。jQueries .html()仅在内部使用innerHTML属性。
这是要发生吗?我使用的是Firefox 3.5.2。我在下面有一个示例,无论您将文本框的值更改为什么,“
container”元素的innerHTML都只会返回HTML标记中定义的值。该示例并没有使用jQuery只是为了使其更简单(使用jQuery的结果是相同的)。
有谁能解决我可以在哪个位置获取容器html的当前状态,即包括对DOM的任何脚本化更改?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
<!--
function BodyLoad(){
document.getElementById("textbox").value = "initial UPDATE";
DisplayTextBoxValue();
}
function DisplayTextBoxValue(){
alert(document.getElementById("container").innerHTML);
return false;
}
//-->
</script>
</head>
<body onload="BodyLoad();">
<div id="container">
<input type="text" id="textbox" value="initial" />
</div>
<input type="button" id="button" value="Test me" onclick="return DisplayTextBoxValue();" />
</body>
</html>
Firefox不会根据用户输入来更新DOM对象的value
属性 ,而只是基于其value
属性 -存在非常快速的解决方法。
DOM:
function DisplayTextBoxValue(){
var element = document.getElementById('textbox');
// set the attribute on the DOM Element by hand - will update the innerHTML
element.setAttribute('value', element.value);
alert(document.getElementById("container").innerHTML);
return false;
}
.formhtml()
自动执行此操作的jQuery插件:
(function($) {
var oldHTML = $.fn.html;
$.fn.formhtml = function() {
if (arguments.length) return oldHTML.apply(this,arguments);
$("input,button", this).each(function() {
this.setAttribute('value',this.value);
});
$("textarea", this).each(function() {
// updated - thanks Raja & Dr. Fred!
$(this).text(this.value);
});
$("input:radio,input:checkbox", this).each(function() {
// im not really even sure you need to do this for "checked"
// but what the heck, better safe than sorry
if (this.checked) this.setAttribute('checked', 'checked');
else this.removeAttribute('checked');
});
$("option", this).each(function() {
// also not sure, but, better safe...
if (this.selected) this.setAttribute('selected', 'selected');
else this.removeAttribute('selected');
});
return oldHTML.apply(this);
};
//optional to override real .html() if you want
// $.fn.html = $.fn.formhtml;
})(jQuery);
问题内容: 当与CSS属性结合使用时,Firefox缺少元素底部的填充。(但可在Chrome和Safari中使用。) 我错过了一些东西吗,或者有什么办法可以解决这个问题? 注意:该演示没有使用任何库进行规范化,但是我也尝试过,但是没有成功。 问题答案: 修改后的CSS
作为开发人员,我使用以下endpoint:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate 并要求:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#AppendCells
问题内容: 我正在研究一个jQuery主题,其中包括对尽可能多的表单元素进行样式化。最初,它是为Webkit(Chrome)开发的。现在,我也想使其与Firefox一起使用。 问题是;Firefox在某些特定于Webkit的语法上存在问题。 例如: 问题是位。删除它,Firefox运行正常。它也做到这一点对于其他类似语法,并使用所有其他的事情标签。它可以识别出自己的标签,虽然很好。 Webkit似
问题内容: 我正在尝试向元素内的display:flex元素添加填充。如果将填充定义为百分比,则在Firefox中不会显示填充,尽管在中定义时会显示px。两种情况在Chrome中都可以正常工作。 问题答案: 网格/弹性百分比 该小组试图研究如何定义垂直百分比边距和填充。注意:传统上,CSS的顶部和底部页边距是针对包含块的宽度而不是其高度进行解析的,这具有一些有用的效果,但通常令人惊讶。现有的布局模
我在Firefox 34及以上版本中发现了一个与显示行为有关的错误: flex。 我可以确认代码在所有现代浏览器中都一直有效,现在仍然有效,但是Firefox34和最近的Firefox35测试版的行为完全不一致。 我制作了一把小提琴,展示了不同的行为:http://jsfiddle.net/ntkawu63/ 在Firefox34中启动它,它将忽略图像上的最大宽度:100%。在任何其他浏览器中,包
问题内容: 我有一堂课,里面也有变量。有时我想忽略某些字段,有时在反序列化时不想忽略(也许也在序列化时)。在Jackson怎么办? 问题答案: 对于序列化,“ 过滤属性 ”博客条目应该会有所帮助。反序列化方面的支持较少,因为更常见的是要过滤掉所写的内容。 一种可能的方法是子类化,重写使方法(和/或字段)具有可忽略性的方法,以使用所需的任何逻辑。 如果您举了一个实际应用的例子,这也可能会有所帮助,即