我通常通过执行以下操作来为某些事件注册javascript函数:
myBtn.Attributes.Add("onClick", "Validate(getElementById('"+txtFirstName.ClientID + "'));");
Run Code Online (Sandbox Code Playgroud)
我总是单独使用getElementById,或者换句话说,没有文件可以使用它.但是当我尝试使用getElementById而不是使用时,我最近打破了页面document.getElementById.为什么是这样?奇怪的是,我有一个网站,其中一个页面允许我只使用getElementById,但另一个页面抛出一个javascript错误,因为它无法找到该元素,如果我只是getElementById,它只会工作,如果我这样做document.getElementById.
有谁知道这是为什么?我是否应该在document.getElementById任何地方使用,无论它是否在没有文档前缀的情况下工作?
编辑:它可能与一个页面使用AJAX而另一个页面不是这样的事实有关吗?
我知道它可以完成,但我遇到了让它运转的问题.基本上我想根据每天更改的变量更改特定表格单元格的字体颜色,实际上突出显示日历中的星期几.我知道变量可以用来获取元素id,但我在这里缺少什么?我尝试在每个单元格中使用唯一的DIV,但得到相同的错误 - "需要对象".提前致谢.这是代码:
<style>
Run Code Online (Sandbox Code Playgroud)
td#day1 {color:white;} td#day2 {color:white;} td#day3 {color:white;} td#day4 {color:white;}等.
<script type="text/javascript">
function calculate_date(){
currentTime = new Date();
day = currentTime.getDate();
return day;
}
function highlight_day() {
calculate_date();
today = 'day'+ day;
document.getElementById(today).style.color= "red";
}
document.onload(highlight_day());
</script>
</head>
<body>
SEPTEMBER
<table class="cal">
<tr>
<td id="day1">1</td><td id="day2">2</td><td id="day3">3</td><td id="day4">4</td>
Run Code Online (Sandbox Code Playgroud) 我有以下代码,并且chrome中的javascript控制台说"无法读取null的innerHTML属性.为什么document.getElementById('display')空出来?
<!DOCTYPE html>
<html>
<head>
<title>Chat 3</title>
<script type="text/javascript">
function showmsg(str){
var display = document.getElementById('display');
display.innerHTML += "<p>" + str + "</p>";
}
if("WebSockets" in window){
pass;
}else{
showmsg("Your browser doesn't support WebSockets. Try Google Chrome.");
}
</script>
<style type="text/css">
#username {
padding: 0px;
margin: 0px;
height: 26px;
width: 400px;
}
/* ADDED container div that wraps onlineusers and display */
#container {
margin: 10px 0;
}
/* use float: left to put them side-by-side */
#display {
padding: 0px; …Run Code Online (Sandbox Code Playgroud) 我有一些JavaScript从HTML文档中通过ID获取元素.
在一个特定场景中,document.getElementById(idString)方法在IE8兼容模式下返回null,但是jQuery等效方法有效.我需要弄清楚为什么原生呼叫不起作用.
这是一个例子:
var myId = "e_" + someId;
var myNativeDiv = document.getElementById(myId);
var myjQueryDiv = $("#" + myId);
alert(myNativeDiv + " - " + myjQueryDiv); // alerts "null - [Object object]"
Run Code Online (Sandbox Code Playgroud)
我已检查myId过该文档中的唯一内容.
任何调查途径都值得赞赏.
更新 - 实际上,myjQueryDiv也是空的,但我想jQuery使它不为空.但是,调用parentDom.find("#" + myId);确实返回了正确的元素,其中parentDom是我需要查找的元素的祖先.
我有这个HTML代码:
<div id="channels_0">
<div id="channels">
<h4 class="date"><span id="date">Sat 22nd Sep</span> @
<span id="time">12:45</span></h4>
<h3 class="teems"><span id="date">Swansea City v Everton </span></h3>
<h4 class="tv"><span id="mychannels"></span>Sky Sports 2/Sky Sports 2 HD</h4>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有这个JS:
document.getElementById('channels').innerText)
Run Code Online (Sandbox Code Playgroud)
哪个输出:
Sat 22nd Sep @ 12:45
Swansea City v Everton
Sky Sports 2/Sky Sports 2 HD
Run Code Online (Sandbox Code Playgroud)
我如何得到一个句柄并输出单个项目,如:mychannels,或teems或时间或日期,即我需要得到孩子,这是怎么做到的?
我试过了:
document.getElementById('channels').getElementsByTagName('date').value;
Run Code Online (Sandbox Code Playgroud)
和
document.getElementsByClassName('date').value;
Run Code Online (Sandbox Code Playgroud)
和其他人一样,但似乎无法掌握它.
我在使用函数替换XML文件中的问题和答案元素时遇到了一些问题.我做了很多研究学习php dom,但是我正忙着制作这个功能.问题是当我试图通过属性id获取父元素行时它返回null或当我使用xpath时它返回一个空对象.我得到正确的父元素后,我不知道该函数是否正常工作,但这是我认为的下一步.
我的XML看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row id="1">
<question>Wat doet de vuilnisman?</question>
<answer>Hij tilt de vuilnisbak in de vuilnisauto.</answer>
</row>
<row id="2">
<question>Wat zegt de tandarts vaak?</question>
<answer>U mag nu spoelen.</answer>
</row>
</root>
Run Code Online (Sandbox Code Playgroud)
和我的PHP功能:
//modifies rows
function modifyRows($file, $rowIds, $rowText) {
$xmlDoc = new DOMDocument();
$xmlDoc->preserveWhiteSpace = false;
$xmlDoc->formatOutput = true;
$xmlDoc->load($file);
foreach($rowIds as $rowId) {
$parent = $xmlDoc->getElementById($rowId);
for($i=0;$i<count($rowText);$i++) {
$newQ = $xmlDoc->createElement('question');
$qText = $xmlDoc->createTextNode($rowText[$i]);
$qText = $newQ->appendChild($qText);
$newA = $xmlDoc->createElement('answer');
$aText = $xmlDoc->createTextNode($rowText[$i++]);
$aText = $newA->appendChild($aText); …Run Code Online (Sandbox Code Playgroud) 我试图使用Vb脚本从HTML页面中提取信息.这是我试图提取信息的HTML页面.
<div id="profile-education">
<div class="position first education vevent vcard" id="xxxxxx">
University 1
<span class="degree">Ph.D.</span>
<span class="major">Computer Science</span>
<p class="period">
<abbr class="dtstart" title="2005-01-01">2005</abbr> – <abbr class="dtend"
title="2012-12-31">2012</abbr>
</div>
<div class="position education vevent vcard" id="xxxxxx">
University 2
<span class="degree">M.Eng.</span>
<span class="major">Computer Science</span>
<p class="period">
<abbr class="dtstart" title="2000-01-01">2000</abbr> – <abbr class="dtend"
title="2004-12-31">2004</abbr>
</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想以下面的格式提取信息.
时间:2005年 - 2012年
大学名称:大学2
在我的VB脚本中,我有以下代码,它将整个信息作为单个变量提取.
Dim openedpage as String
openedpage = iedoc1.getElementById("profile-education").innerText
Run Code Online (Sandbox Code Playgroud)
但是,如果我在我的vb脚本中使用以下语句,我可以获得特定的跨度信息.
openedpage = iedoc1.getElementById("profile-education").getElementsByTagName("span")
(0).innerText
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了Phd作为输出.但是,我事先不会知道总跨度,因此我不能简单地在代码中给出span(0)和span(1).另外,我想提取所有div标签的信息,我也不会知道这些信息.基本上,我想要一些循环结构来迭代div标签和id profile-education,从中我应该能够提取多个div和span信息.
所以,这是代码:
<a id="link" href="https://url.com/">URL:</a>
<input id="value"/>
<script type="text/javascript">
var link= document.getElementById('link');
var input= document.getElementById('value');
input.onchange=input.onkeyup= function() {
link.search= 'extendurl/'+encodeURIComponent(input.value);
};
</script>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我需要使用类而不是ID.我试试这个:
<script type="text/javascript">
var link= document.getElementByClassName("link")[0];
var input= document.getElementByClassName("value")[0];
input.onchange=input.onkeyup= function() {
link.search= 'extendurl/'+encodeURIComponent(input.value);
link.firstChild.data= link.href;
};
</script>
<a class="link" href="https://url.com/">URL:</a>
<input class="value"/>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但这不起作用.
有人?
我试图div在getElementById不使用AJAX或jQuery的情况下从一个网页URL到另一个网页并以纯文本显示,因为我要在FitNesse中实现它。有没有办法传递URL?
<select>我的页面中有几个元素.有没有简单的方法可以选择最后一个?这给我带来了第一个:
document.getElementById("myList")
Run Code Online (Sandbox Code Playgroud)
更新:
对不起,错误的用法getElementById.让我改变我的问题:如何使用某个元素访问最后一个元素getElementsByTagName?
document.getElementsByTagName("select")
getelementbyid ×10
javascript ×8
dom ×3
html ×2
domdocument ×1
domxpath ×1
fitnesse ×1
jquery ×1
php ×1
selector ×1
vba ×1
xml ×1