javascript - 如何获取可变元素的最新 HTML 标签,如 JS/Jquery 中的 Select、Checkbox、Input?
问题描述
我需要获取可变元素的 HTML 标签,以便可以将它们传递给创建 PDF。但是,每当我使用 element.innerHTML 或 element.html() 时,我都会在页面加载后生成 HTML 标签,但在我进行更改后不会。
在 HTML 中:
<select id="testSelect">
<option id="no">-- not selected --</option>
<option id="one" selected>1</option>
<option id="two">2</option>
</select>
在 JS 中:document.getElementById("testSelect").innerHTML
它返回:
"
<option id="no">-- not selected --</option>
<option id="one" selected="">1</option>
<option id="two">2</option>
"
现在,如果我手动将值更改为 2,那么
在 JS 中:
document.getElementById("testSelect").value
"2"
如您所见,值已更改。但是,HTML 标签不会改变为
在 JS 中:
document.getElementById("testSelect").innerHTML
"
<option id="no">-- not selected --</option>
<option id="one" selected="">1</option>
<option id="two">2</option>
"
不过,我得到了旧标签。相反,我想要这样的东西。
"
<option id="no">-- not selected --</option>
<option id="one">1</option>
<option id="two" selected="">2</option>
"
解决方案
在 jQuery 网站上,您解释了类似的问题: https ://learn.jquery.com/using-jquery-core/faq/how-do-i-get-the-text-value-of-a-selected-option/
$(function(){
$('#select').change(function(){
$('#output-value').text($(this).val());//get value
$('#output-element').text($(this).find('option:selected').text());//get text of selected element
$(this).find('option').each(function(){
$(this).attr('selected', $(this).is('option:selected')); //adds and removes selected attribute
});
$('#output-html').text($(this).html());
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select" >
<option>--</option>
<option value="1" >1 val</option>
<option value="2" >2 val</option>
<option value="3" >3 val</option>
</select>
<br/>
Value
<div id="output-value" ></div>
Element
<div id="output-element" ></div>
HTML
<div id="output-html"></div>
推荐阅读
- python - 在 python-telegram-bot 中从用户获取实时位置
- javascript - 如何从 ExecuteScript 转换 json 数组
- awk - 为什么awk在没有打印命令的情况下打印文件内容
- android - 在我的项目中集成 robelectric
- google-apps-script - 获取暂停用户的文件
- ios - 如何将标签/ UIView 固定到 ARKit 中的节点
- c# - DPI,图像宽度和高度与质量
- php - 如何在主域和子域的 Laravel 上使用
- sql - 使用数组列将表连接到自身?
- karma-jasmine - 如何在 karma.conf.js 中加载第三方库