- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图在物化模式中进行选择。到目前为止,一切正常,但是当我使用 ajax 请求刷新模式选择的内容时,选择消失了。
经过调查,我发现innerHTML不是正确的HTML。
这是我所拥有的:
let modal = htmlResponse.find('#modal')
let modal_old = document.getElementById('modal')
console.log(modal)
console.log(modal.innerHTML)
modal_old.innerHTML = modal.innerHTML
控制台日志如下:
<div class="modal-content">
<h4>Title</h4>
<p>Some Text</p>
<select id="mySelect" name="mySelect">
<option value="" disabled selected>Select one user</option>
<option value="2" id="2 ">Name 1</option>
<option value="4" id="4 ">Name 2</option>
</select>
</div>
<div class="modal-footer">
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">Cancel</a>
<a href="#" class="modal-action waves-effect waves-red btn-flat btn-transfer">Ok</a>
</div>
随后
<div class="modal-content">
<h4>Title</h4>
<p>Some text</p>
<select id="mySelect" name="mySelect">
<option value="" disabled="" selected="">Select one user</option>
<option value="2" id="2 ">Name 1</option>
<option value="4" id="4 ">Name 2</option>
</select>
</div>
<div class="modal-footer">
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">Cancel</a>
<a href="#" class="modal-action waves-effect waves-red btn-flat btn-transfer">Ok</a>
</div>
正如我们所见,disabled
和 selected
被替换为disabled=""
和 selected=""
。
innerHTMl 替换后,模式仍然打开,但选择不可见。
当我使用 Chrome 开发工具检查模态(在 ajax 替换之后)时,我看到第一个输出(具有正确的选择),但它没有显示。
这是由innerHTML引起的还是我的错误使用造成的?
顺便说一句,我正在 macOS High Sierra (10.13.2) 和 Chrome (63.0.3239.108) 上进行测试,这两个版本都包含在最新的可用更新中。该网站托管在 docker 容器中,但我不认为问题可能来自这里。
最佳答案
After investigating, I find that the innerHTML is not proper HTML.
这是正确的 HTML。
A boolean attribute without a value assigned to it (e.g. checked) is implicitly equivalent to one that has the empty string assigned to it (i.e. checked=""). As a consequence, it represents the true value.
因此,两组 HTML 表达了相同的信息,并且都正确地表达了。
将 HTML 转换为 DOM,然后要求浏览器将 DOM 转换为 HTML,将为您提供规范化的 HTML,而不是原始 HTML。所以这种变化是正常的。
<小时/>When I inspect the modal (after the ajax replacement) using Chrome dev tools, I see the first output (with the correct select) but it's not displayed.
问题中的代码都不能解释它没有显示。这一定是由代码的其他部分引起的。
关于Javascript insideHTML 弄乱了 html 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48092293/
在注册表中,我有 php 验证密码并将消息“good”发送回 div“password_feedback”。在if语句中,如果password_feedback ==“good”,则在“check”d
您好,我正在尝试更新以下脚本的innerHTML Your submission was successful. 我已经尝试过以下 var cls =document.getElementB
在我的脚本中 node1.data 和 node1.textContent 工作正常,但 node1.innerHTML 没有显示任何内容,我不明白为什么。 var text = []; functi
有谁知道如何从 IFRAME 中获取 HTML 我尝试了几种不同的方法: document.getElementById('iframe01').contentDocument.body.innerH
这是一个非常简单的程序,输出应该是 JavaScript,但我只得到 s。 document.getElementById("ma"
我有一个带有innerhtml函数的javascript代码,就像这样 var x = document.getElementById("gps"); function getLocation()
我正在使用 html 和 js,并且我想在用户单击某些内容时显示一段 html 代码。代码有点大,因此使用 document.getElementById("display").innerHTML =
我似乎无法使用innerHTML 在计算器下方显示答案。我以前曾使用警报框进行此操作,但理想情况下我想直接写入文档,以便可以包含链接和格式。 我成功地使用了下面的方法,并使用了一个不太复杂的脚本,该脚
我看到了很多关于这种模式的帖子,但仍然不明白为什么它在我的代码中不起作用。在 Ubuntu 10.04 上使用 Chromium。 function showDescription(){ va
我有一段代码,可以将 div 标签的内部 HTML 更改为状态消息,它包含在 try 方法中,唯一的问题是状态保持可见约 3 秒,然后消失。我认为这是由于 try 方法造成的,有什么办法可以阻止这个吗
我想避免每次想要更改时都必须在 5 个不同的页面上制作菜单。因此,我使用 Javascript 在运行时重新创建菜单,这样我只需更改该脚本即可立即在所有页面上更改菜单(我知道,天才吧?)。 但事情是这
我想从 API 中获取每个元素并将其显示在不同的类中。我在控制台中得到结果,但在页面上没有得到结果。请帮帮我。预先感谢您:) . 我已经将 JavaScript 与 Jquery 结合使用。 $.g
我对 JavaScript 还很陌生。我正在尝试在 的顶部添加一个 div 。但由于某种原因,它将我的代码添加为这样的文本 这是我目前的代码。 function addDark() { docu
function startMatch(deck, dealer, player){ var dealerX = document.querySelector('#player:first-c
我对innerHTML的理解并不完全清楚,所以我遇到了一些麻烦。 这会产生表外的所有 td。我做错了什么? var list = document.getElementById("procTable"
不确定这是否很奇怪或者只是我很愚蠢,但我在 JavaScript innerHTML 中遇到了问题。好的,我的 body 标签中有一个空的 DIV。我想要的是在其中写一个无序列表。所以,我做了这个:
我正在使用谷歌地图 API。当用户移动 map 上的标记时,提交按钮将从禁用状态更改为禁用状态。它将按钮从禁用状态更改为禁用状态,但我无法提交表单。什么也没发生。
我试图将我在文本输入中输入的所有内容大写,js 上的 caps 函数工作正常,我可以在控制台上看到,但 insidehtml 函数不会更改 html 文件 function clr() { doc
这个问题已经有答案了: Why does jQuery or a DOM method such as getElementById not find the element? (7 个回答) 已关闭
我正在为考试尝试一些东西,但无法使其发挥作用。这真的很简单,我不明白为什么不起作用。 Exercici 2 //rep 2 paràmetres d'entra
我是一名优秀的程序员,十分优秀!