经典Javascript代码之间有什么区别:
document.getElementById('theID')
Run Code Online (Sandbox Code Playgroud)
和jQuery版本:
$('#theID')
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的HTML:
<div id="mainDiv"> <-- I have this
<div>
<div></div>
<div></div> <-- I need to get this
</div>
<span></span>
<more stuff />
</div>
Run Code Online (Sandbox Code Playgroud)
我在用:
var mainDiv = document.getElementById('mainDiv');
Run Code Online (Sandbox Code Playgroud)
因为我需要var中的div,但我还需要将mainDiv中第一个div的第二个div放到变量中.
我怎么能以简单的跨浏览器方式做到这一点?
我一直在成功使用document.GetElementById,但从一段时间以来我再也无法使用了.我使用它的旧页面仍然可以工作,但事情就像这样简单:
<html>
<head>
<title>no title</title>
<script type="text/javascript">
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
</script>
</head>
<body>
<div id="ThisWillBeNull"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
给我"document.getElementById("parsedOutput")现在一直是null".如果我使用Firefox或Chrome或者我启用了哪些扩展程序或者我用于html的标题,它无关紧要,它始终为空,我找不到可能出错的地方.
谢谢你的输入=)
<html>
<head>
<title>Test javascript</title>
<script type="text/javascript">
var e = document.getElementById("db_info");
e.innerHTML='Found you';
</script>
</head>
<body>
<div id="content">
<div id="tables">
</div>
<div id="db_info">
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我使用alert(e);它出现null....显然我没有在屏幕上找到任何"找到你".我究竟做错了什么?
虽然我把一个参数推到了getElementById我想知道这个'是null'错误来自哪里?
TypeError: document.getElementById(...) is null
[Break On This Error]
document.getElementById(elmId).innerHTML = value;
Line 75
Run Code Online (Sandbox Code Playgroud)
除此之外,我想知道为什么标题和时间没有显示,除非我点击其中一个播放列表图片?
在Microsoft IE和(根据评论)Edge,getElementById()在一个ID正好"extTabsBodyEleFile1273551781_renderTo"失败.
<!DOCTYPE HTML>
<html>
<body>
<div id="extTabsBodyEleFile1273551781_renderTo"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
此ID已自动生成.以任何方式更改ID可以解决问题.获取div的父级并列出其子节点还包括div.
错误可以在IE 11.0.9600.19155和11.0.9600.18538上重现 - 但它在IE 11 ... 19155的另一台机器上运行没有问题.
如果您在随机站点上打开开发人员控制台,将DOM浏览器中任何元素的ID更改为上面的ID,然后尝试通过以下方式获取该元素,也可以重现该错误 document.getElementById('extTabsBodyEleFile1273551781_renderTo')
我意识到这是一个Edge bug并且修复它只是意味着更改ID.我的问题是它为什么会发生,为什么它没有发生在Edge的一个实例上(我找不到设置差异)以及我如何生成ID以确保它不会再次发生.在这个地方很容易改变它,但不知道它为什么会发生,它可能会再次发生.
是否有已知的哈希或数字组合ID不应该有?这是我可能使用元标记关闭的遗留设置吗?
我希望这个问题对于SO来说并不太具体 - 由于getElementById相关问题的大量搜索,它被证明是徒劳的.
console.log(document.getElementById('extTabsBodyEleFile1273551781_renderTo'));Run Code Online (Sandbox Code Playgroud)
<div id="extTabsBodyEleFile1273551781_renderTo"></div>Run Code Online (Sandbox Code Playgroud)
更新:
似乎ID在不区分大小写的情况下失败:
extTabsBodyEleFile1273551781_renderTo
exttabsbodyelefile1273551781_renderto
EXTTABSBODYELEFILE1273551781_RENDERTO
ExttAbsbOdyELEfILE1273551781_rEndErtO
Run Code Online (Sandbox Code Playgroud)
都导致错误.
更新:
IE Developer控制台似乎至少参与了错误.打开一个测试HTML页面,显示尝试通过该ID内部检索元素而不是将其记录到控制台的结果,如果在控制台关闭的情况下启动IE,则按预期工作 - 直到控制台打开并且页面刷新了一对(1-5)次,然后错误再次出现并持续到IE关闭并重新打开.出现错误后关闭开发人员控制台似乎没有效果.
测试HTML托管在netlify,HTML代码:
<!DOCTYPE HTML>
<html>
<head>
<style>
table, th, td {border: 1px solid black;border-collapse: collapse;}
th, td {padding: 15px;}
</style>
</head>
<body>
<div id="extTabsBodyEleFile1273551781_renderTo"></div>
<div><p id="testresult"></p></div>
<script>
var testresults = document.getElementById('testresult');
var time = new Date().getTime(); …Run Code Online (Sandbox Code Playgroud) javascript getelementbyid internet-explorer-11 microsoft-edge
<html>
<script type="text/javascript">
function func() {
alert(document.getElementById('iView').contentDocument);
}
</script>
<body>
<iframe id="iView" style="width:200px;height:200px;"></iframe>
<a href="#" onclick="func();">click</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
点击后,Firefox返回[object HTMLDocument].Internet Explorer返回undefined.
如何使用Internet Explorer选择iView元素?谢谢.
#-*- coding:utf-8 -*-
import win32com.client, pythoncom
import time
ie = win32com.client.DispatchEx('InternetExplorer.Application.1')
ie.Visible = 1
ie.Navigate('http://ieeexplore.ieee.org/xpl/periodicals.jsp')
time.sleep( 5 )
ie.Document.getElementById("browse_keyword").value ="Computer"
ie.Document.getElementsByTagName("input")[24].click()
Run Code Online (Sandbox Code Playgroud)
import win32com.client, pythoncom
import time
ie = win32com.client.DispatchEx('InternetExplorer.Application')
ie.Visible = 1
ie.Navigate('www.baidu.com')
time.sleep(5)
print 'browse_keword'
ie.Document.getElementById("kw").value ="Computer"
ie.Document.getElementById("su").click()
print 'Done!'
Run Code Online (Sandbox Code Playgroud)
当运行第一部分代码时,它将弹出:
ie.Document.getElementById("browse_keyword").value ="Computer"
TypeError: getElementById() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
并且第二部分代码运行正常.使结果不同有什么区别?
我正在使用JavaScript来禁用按钮.在IE中工作正常但在FireFox和chrome中没有,这是我正在处理的脚本:
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').disabled = true;
} else {
document.getElementById('btn1').disabled = false;
}
Run Code Online (Sandbox Code Playgroud)
在我的HTML中,我有:
<input type="button" id="btn1" value="submit" />
Run Code Online (Sandbox Code Playgroud) 此刻出现此错误:
Uncaught TypeError: Cannot read property 'value' of null
我在下面的渲染函数中调用它:
<input type="submit" className="nameInput" id="name" value="cp-dev1" onClick={this.writeData}/>
Run Code Online (Sandbox Code Playgroud)
我也试过在这里调用它
componentWillMount: function(){
var name = document.getElementById('name').value;
},
Run Code Online (Sandbox Code Playgroud)
如何获取输入文本字段的id并读取该值并确保它不为空?
我认为DOM在我尝试读取元素后加载,因此它为空
getelementbyid ×10
javascript ×9
com ×1
dom ×1
explorer ×1
html ×1
innerhtml ×1
jquery ×1
null ×1
parent-child ×1
python ×1
reactjs ×1
win32com ×1