当前位置: 首页 > 知识库问答 >
问题:

如何保持html DOM元素与关联的javascript对象同步?最佳实践

屠德宇
2023-03-14
<textarea id="content"></textarea>
<select id="sel">
    <option value="1">value1</option>
    <option value="2">value2</option>
    <option value="3">value3</option>
</select>
var objectData = {
    "textareacontent"   : "some random content"
    "selectData"        : "1"
}

我正在这里寻找最佳实践,一个简单的例子将非常赞赏。我还注意到观察者模式

Object.observe

这看起来很好,但似乎只适用于更改js对象状态并且不保持对象状态和关联的HTML元素的异步(或者我遗漏了一些东西)

共有1个答案

督建柏
2023-03-14

根据我的评论,在包含了knockout库之后,这就变得非常简单:

<textarea id="content" data-bind="value: textareacontent"></textarea><br />
<select id="sel" data-bind="value: selectData">
    <option value="1">value1</option>
    <option value="2">value2</option>
    <option value="3">value3</option>
</select><br />

使用此JavaScript:

var objectData = {
    "textareacontent"   : ko.observable("some random content"),
    "selectData"        : ko.observable("1")
}

ko.applyBindings(objectData);

JSFiddle此处:http://jsfidle.net/T1chz62l/1/

 类似资料:
  • 我基本上有一个对象,它存储了一个项目的3D位置和其他属性,如速度。该位置每隔100毫秒由一个单独的威胁计算一次。另一种威胁访问这些属性并修改其中的一些属性。 我的第一个想法是简单地对每个属性使用,但据我所知,对volatile属性的每个操作都必须是原子的。由于这两种威胁都允许在某些情况下改变某些属性(如速度),这似乎不起作用。 我的下一个想法是使用Java的关键字,同步每个getter和sette

  • 问题内容: 在我的脚本中,有必要创建一个哈希表,我在Google中搜索了此表。为此,大多数人都建议使用JavaScript对象。问题是,哈希表中的某些键具有“”。在他们中。我可以使用关联数组轻松创建这些键。 我不明白为什么关联数组不好。在我查看的站点中提到的第一件事是length属性。我来自使用散列的Perl背景。最常见的用途是从键中获取值,检查键是否存在,删除键值对,添加键值对。如果这些是我的常

  • 问题内容: 我有一些最初存储在通用Javascript对象中的数据,其ID为键: 但是,我发现浏览器在循环浏览时并不能保证特定的对象顺序,因此在上面的“ 3”将出现在“ 7”之前。我改用这样的数组格式: 现在,我可以按正确的顺序循环,但是不能进行快速查找,例如,不必循环遍历数组。 是否有结合两种方法的好方法?我宁愿避免为每种格式使用单独的对象,因为该对象非常大(数百个元素)。 问题答案: 我也遇到

  • 我有以下问题,例如:给定一个带有符号 的桶和一本菜谱来创建配对,例如: 从桶中选择最佳配对,在桶中保留尽可能少的符号。因此,使用上面的示例值,最佳配对将是: ,它将使用给定的所有符号。 从桶中简单地选取可能导致类似于: 使得和不匹配。和无法匹配,因为该书不包含该特定连接的制作方法 注: 实际问题平均包含:桶中500个元素,约30种符号。 我们已经尝试使用bruteforce算法来实现这个解决方案,

  • null 将整个object1作为完整的JSON存储在my key下。 将object2与它自己的键一起存储在我的object1序列化中,以将object2键作为引用,并且当从缓存中拉回时,也通过它的键拉出object2。 我觉得选项1是最好的实践,也是最有效的,但我有第二个想法,将大的嵌套对象存储在on键下。

  • 问题内容: 主要目的是使徽标文本和菜单保持不刷新,而不会刷新页面或将内容从页面加载到另一个页面时。同样,菜单状态应从一个页面保存到另一个页面。 我在这里找到了可以解决问题的可行解决方案( 您可以使用ajax来获取更新的内容,并使用jQuery将新内容放到页面上,而完全避免刷新。这样做,页面将保持不变。 @ jfriend00) 因此,我尝试使用Ajax插件(称为[AWS)。在AWS选项页,我(想)