- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用惯了AngularJS框架,使用VanillaJS时遇到了一个障碍,看似很简单,但上线后才发现实践过时。
首先,我需要能够拥有一个 <textarea>
元素并立即将其更改传播到 JS 到 HTML。例如(在 JS 伪代码中):
<textarea id="#editor" when-changed="foo(newValue)"></textarea>
<p id="#parsedEditor"></p>
function foo(newValue) {
document.getElementByID("#parsedEditor") = bar(newValue);
}
function bar(text) {
return text.replace(" ", "x");
}
我想要的是每当textarea
的值被更改后,它会通过一些过滤器,然后呈现到前端。
在这种情况下,每当 #editor
的值改变了,它的新值被发送到回调函数foo
并使用 bar
对其进行解析过滤器和 #parsedEditor
使用新值更新。在 AngularJS 中,它基本上是(忽略确切的语法和最佳实践):
<textarea ng-model="text"></textarea>
<p ng-bind-html="parsedText"></p>
function controller($scope) {
$scope.$watch('text', function(newValue, oldValue) {
$scope.parsedText = newValue.replace(" ", "x");
}
}
我在网上搜索了执行此操作的方法,并找到了 Object.observe()
这只是一个新提出的方法和.watch()
这在 MDN 上是不推荐的。此外onchange
属性仅在 textarea
之后调用回调函数元素被取消选择,我想在值发生变化时传播它,而不是在它被取消选择时传播。
我觉得在 JS 中一定有一种更简单的方法来做到这一点,但我缺少这种方法?
最佳答案
这是基于我上面评论的工作代码:
<textarea id="#editor" oninput="foo(event.currentTarget.value)"></textarea>
<p id="#parsedEditor"></p>
我假设您的意图是用 x 替换所有空格。如果是这样,您可能需要一个正则表达式:
function foo(newValue) {
document.getElementById("#parsedEditor").innerText = bar(newValue);
}
function bar(text) {
return text.replace(/\s/gi, "x");
}
您需要在所有目标浏览器中进行测试,并记住 HTML5 api 在 IE9 中并不总是按预期工作:http://caniuse.com/#search=input
fiddle 在这里:https://jsfiddle.net/mcgraphix/71evt900/
关于javascript - 在 VanillaJS 中模拟 ng-model 双向数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330161/
我将 TailwindUI 的滑盖与普通 JS 一起使用,叠加层和不透明度应用正确,但动画是立即发生的,而不是使用持续时间类。 https://tailwindui.com/components/ap
看来Polymer的 polyfill-next-selector { content: ':host #myId' } 对 VanillaJS 不起作用(在 IE 中) s 和自定义元素。 对于它工
这个问题在这里已经有了答案: How to get the div that has a duplicated id using querySelector()? (3 个答案) addEvent
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 我有一个简单的问题,在我脑海中萦绕了好几天:VanillaJS 是什么?有人把它称为框架,你可以
我得到字符串: 'document.write("hello")' 我必须使用 VanillaJS 创建一个内联脚本元素。 有没有办法触发脚本执行? 可以工作,但太复杂: const scriptSt
我正在为搜索引擎做前端,我有一个 div,它会根据搜索结果重复多次。所有这些都需要 chop 文本并显示更多/更少按钮。我正在使用切换类来 chop 文本。我写了下面的代码,但是,它只适用于第一个 d
我有下表,其中包含一些对象: var data = [ { "userRoleId": 1, "userId": 1, "roleId": 1,
给定一串偶数和奇数,找出唯一的偶数或唯一的奇数。 示例:检测离群值(“2 4 7 8 10”);//=> 2 - 第三个数字是奇数,而其余数字是偶数 即使我已经将所有内容都转换为数字,为什么我还需要再
只有2张图片,我想互相切换,但找不到解决方案。第一次单击时,它工作正常,但第二次单击时,当我想返回上一个图像时,它不起作用。我想也许(蜇伤)情况不好,但不知道是什么。 function ex
$('.tabLabel').click(function() { if (!$(this).hasClass('activeTab')) { $('.tabLabel').removeC
我正在开发一个 Chrome 扩展程序,它可以解析 DOM 并根据特定条件转换一些文本节点。我使用的是纯 Javascript,即没有 jQuery 或其他框架,我想保持这种状态。 我如何查看 DOM
我不知道如何将此代码从 Jquery 重写为 VanillaJS。累了几天,一直没有找到解决办法。 我想我已经搜索了整个 Internet 但一无所获......有人可以给我一个“准备好的”代码吗?请
我正在开发一个 Vanilla JS 库。这个库必须公开一个对象,我们称之为 sdk :此对象将包含所有库方法,因此潜在用户可以执行 sdk.myFunction(); 这是我的 webp
只是想知道,我如何能够以以下格式迭代我的 json 对象? [ {"page":1,"pages":1,"per_page":"600","total":264}, [ {
我正在构建一个类似 jQuery 的库,但是这里有一个错误,其中行 $('#hello').addClass('blue'); 不起作用故意的。 class DOM { constructor
这个问题已经有答案了: ES2015 import doesn't work (even at top-level) in Firefox (10 个回答) ES6 modules in the br
我在 DOM 的不同位置和深度有几个 html 节点。我需要根据它们在 DOM 中的位置对它们进行有效排序,而不管它们的深度如何。 它应该使用 VanillaJS 来实现,而不是 jQuery 之类的
所以如果你去这里 https://quantumjs.github.io/solar-popup/demo/dist/然后单击第一个按钮,然后关闭弹出窗口就可以了如果您再次单击该按钮然后关闭弹出窗口,
我使用的是 vanilla JS,我遇到了一个非常烦人的问题,如果您将鼠标悬停在具有 mouseleave 事件监听器的元素的滚动条上,则会调用 mouseleave。 但是,如果您在悬停元素之前使用
我目前正在使用 $.Deferred() 对象来发布消息。 当服务器返回错误时,我使用notify,然后重试,直到成功或失败X次。 我想删除 jQuery 的使用,并迁移到 ES6 相关选项。 我知道
我是一名优秀的程序员,十分优秀!