我只是试图在javascript中的变量中存储标签,但由于某种原因,这不起作用document.getElementById('control');.我知道我的javascript链接到我的html文件很好,因为其他一切正常.
这是我的javascript代码:
function performEvapCooledCircuit(txt)
{
var error = document.getElementById('lblError');
if (txt.value == null || isNaN(txt.value))
{
error.style.visibility = "visible";
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的标签的html代码:
<asp:Label ID="lblError" class="NormLabel" runat="server"
style="color:red; visibility:hidden;" Text="Invalid Input."></asp:Label>
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说对象预期?
我在HTML5页面上有两个表单.每个表单都有一个名称和一个id.第二种形式有一个h1元素,它也有一个名字和一个id.如何使用纯JavaScript更改第二个表单上的此h1元素的文本?
假设getElementById在每个浏览器中都有效可以安全吗?如果没有,哪些人支持/不支持?
我使用JavaScript,在执行期间出现此错误:
Microsoft JScript runtime error: 'document.getElementById(...)' is null or not an object
Run Code Online (Sandbox Code Playgroud)
我的代码:
<asp:Content ID="content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script language="javascript" type="text/javascript">
function ConfirmTransfere() {
if (confirm("Syatem not allow negative inventory, would you like to continue ?") == true) {
document.getElementById("btnAlelrt").click();
}
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="uxContainer" runat="server">
<ContentTemplate>
<table>
<tr>
<td>
<asp:Button ID="uxTransfer" runat="server" Text="Transfer" OnClick="uxTransfer_Click" />
<asp:Button ID="btnAlelrt" runat="server" Text="GetDetails" OnClick="btnAlelrt_Click" />
</td>
</tr>
</table>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="uxTransfer" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud) 我是Javascript的新手,我遇到了一个始终返回NULL的document.getElementById()的问题,这让我疯了.
我的代码中有一个元素,我想得到它的坐标,所以我可以移动它.
这是代码:
<html>
<head>
<script type="text/javascript" >
function MoveIt(obj) {
alert(obj); // returns "Object HTMLDivElement"
var xx = document.getElementById("arect");
if(document.getElementById("arect").value == null) {
alert('NULL >> ' + xx.value);
}
else {
alert('NOT NULL >>' + xx.value);
}
posX = xx.style.scrollTop;
posY = xx.style.left;
}
</script>
</head>
<body bgcolor="white" >
<DIV class="background" id="MyDiv2">
<div id="arect" name="arect" class="transbox" onmousedown="MoveIt(this);" >
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
上面的函数MoveIt()总是返回NULL
我知道这个话题已经被多次辩论过,但是我正在寻找更加技术性和详细的洞察力来了解真正发生的事情.
我设计了一系列测试来比较jQuery最基本的选择器'#id'和'.class'与各种原生DOM方法的速度.
我希望找出结果是什么的确切原因.
以下是测试:http://jsperf.com/jqueryspeed
最值得注意的是,getElementById显然是最快的.为了比较,我添加了jQuery('#id')和jQuery.fn.init('#id')作为测试,两者之间的区别在于第一个确实实现了一个全新的jQuery对象,而第二个是只运行原型函数,因此更快.所以,这两者之间的区别是可以理解的.
然而,我不理解的主要区别是getElementById的速度和jQuery.fn.init的速度之间的巨大差距,它有一个简单的测试来以特定的方式处理简单的('#id')请求,回到对getElementById本身的调用.
那么,为什么例如在Chrome上,这种方法比原生方法慢8倍,尽管它基本上只是它的包装器?
它也比包装的getElementById $(document.getElementById('#id'))慢约3-4倍...
有什么想法吗?
我遇到window.onload和document.onload事件的问题.我读到的所有内容都告诉我,在DOM完全加载其所有资源之前,这些内容不会触发,似乎这对我来说不会发生:
我在Chrome 4.1.249.1036(41514)和IE 8.0.7600.16385中尝试了以下简单页面,结果相同:两者都显示消息"It failed!",表示myParagraph未加载(因此DOM似乎不完整).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript">
window.onload = doThis();
// document.onload gives the same result
function doThis() {
if (document.getElementById("myParagraph")) {
alert("It worked!");
} else {
alert("It failed!");
}
}
</script>
</head>
<body>
<p id="myParagraph">Nothing is here.</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在外部.js文件中使用比这更复杂的脚本,但这说明了问题.我可以让window.onload设置一个计时器半秒来运行doThis(),但这似乎是一个不优雅的解决方案,并没有回答为什么window.onload似乎没有做什么的问题每个人都这样说.另一个解决方案是设置一个定时器,用于检查DOM是否已加载,如果不是,它将在半秒后调用自身(因此它将继续检查,直到加载DOM),但这对我来说似乎过于复杂.是否有更合适的事件要使用?
我一直在寻找这个问题的答案,但我找不到所以我想我会尝试StackOverflow.
在javascript中,这是有效的:
x = document.getElementById('myId');
y = x.getElementById('mySecondId');
我知道这可以完成,getElementsByTagName但我不确定返回的对象getElementById是否能够使用该getElementById方法.
我知道ID应该是每个文档唯一的,但有时情况并非如此.
谢谢!
我无法使用js获取textarea的内容.我觉得我之前已经多次这样做过没有问题,但有些东西正在抛弃,或者我有精神障碍.
HTML
<textarea id="productdescript">test copy..asdfd</textarea><button value="Enter" onclick="addProduct()">
Run Code Online (Sandbox Code Playgroud)
JS
function addProduct() {
var descript = document.getElementById('productdescript').textContent;
alert(descript);
}
Run Code Online (Sandbox Code Playgroud)
Firefox是我目前唯一的浏览器.
当我使用textContent时,会出现警告框但它是空白的.当我使用值时,会出现警告框并显示"未定义"当我使用innerHTML时,所有HTML都会显示,包括标签.
此外,我知道textContent只能在FF中运行,并且对于跨浏览器兼容性,您需要执行类似innerText和textContent的操作,但textContent在FF中不起作用.这个应用程序没有jquery
什么是获取textarea内容的正确的跨浏览器方式!谢谢你的任何建议.
有没有办法让这项工作:
$(this, '#foo')
Run Code Online (Sandbox Code Playgroud)
我想要选择"this"元素和#bar.为了选择让我们说两个ID,它就像它一样简单'#foo, #bar',但当我想要这两个中的一个是"这个"时,我无法让它工作.
jquery multiple-instances this getelementbyid jquery-selectors
getelementbyid ×10
javascript ×8
dom ×3
asp.net ×2
html ×2
jquery ×2
onload ×1
onload-event ×1
performance ×1
textarea ×1
this ×1