我正在上学。任务是从公式中读出数据。虽然我不太了解,但我仍然坚持第一个任务。第一项任务的结果应该是:“你的名字有......人物。”所以基本上如果我在文本字段中输入一个名称并按下提交按钮,它应该给我.length
名称。
HTML:
<form>
<input id="Name" type="text" name="Name">
<input id="Ausgabe" type="submit" value="Ausgabe" onclick="ausgabe"()>
<p id="yournamehas" class="ptags">Your Name has:</p>
<p id="lname" class="ptags"></p>
<p id="Characters" class="ptags"> Characters</p>
</form>
使用Javascript:
function namelength() {
var Namee = document.getElementById('#Name').value.length
document.getElementById('lname').innerHTML = Namee
};
function ausgabe() {
$("#Ausgabe").on("click",function(){
{
document.getElementById("#Ausgabe").innerHTML =
namelength();
}
})
};
我真的不知道什么是错的。你能帮助我吗?
答案 0 :(得分:1)
由于这是一个学校练习,一些指示可能是有用的,以配合另一个答案,这是一个有效的解决方案......
您正在使用jQuery,这是一个JavaScript库(可重复使用的代码),可以使一些工作变得更容易,尤其是在浏览器中的元素操作方面(DOM元素)。回过头来,jQuery还做了一个更重要的工作,正常化&#39;不同的浏览器(Internet Explorer,Firefox,Opera,Netscape等)在遵守标准之前。
如今,jQuery作为标准化程序并不那么重要,但仍然非常便于选择元素和更改样式,内容和处理事件。
在你的例子中,你正在做一些基本的事情&#34; Vanilla JS&#34;方式和一些与jQuery。在一些地方,你有点混乱,并尝试混合各种方式,这不会工作......
如果您有<div id="myDiv"></div>
之类的元素,那么您可以使用Vanilla JS访问它:
document.getElementById("myDiv");
或jQuery:
$("#myDiv");
请注意,您只提供带有getElementById的真实id,没有哈希。
jQuery做的另一件事,当时令人惊讶的是,它允许你使用与CSS相同的选择器来访问DOM元素。这就是为什么jQuery版本有一个哈希(#),因为它是&#34; id =&#34;的CSS选择器。现在有一个广泛支持的Vanilla JS版本:
document.querySelector("#myDiv"); // returns a single element
document.querySelectorAll("div"); // returns multiple div elements
在您的示例中,您使用了jQuery将一些代码附加到按钮的click事件中。
$("#Ausgabe").on("click",function(){
// blah
});
这很棒,并且附加了你的功能,以便稍后点击按钮时运行。
但是,您已将其放在另一个使用旧式onclick
属性单击按钮时显式调用的函数中。
<input id="Ausgabe" ... onclick="ausgabe()">
您的jQuery事件最初未附加。只有当onclick属性处理第一次单击时才会这样。因此,您必须单击按钮以附加事件处理程序以处理单击按钮。你看过电影Inception吗?您需要考虑采取哪种方法。你应该肯定附加到事件而不是使用onclick。
但是,您也可以使用Vanilla JS:
document.getElementById("Ausgabe").addEventListener("click", function() { /* your code goes here */ });
您已使用Vanilla JS方法设置元素的内容,这很棒:
document.getElementById('lname').innerHTML = Namee;
但是jQuery提供了另一种方法:
$("#lname").html(Namee);
为了使编写和读取代码更容易,最好保持一致。决定你是否要使用Vanilla JS或jQuery然后坚持下去。虽然你可以使用jQuery来处理一些比较困难的事情,即使使用Vanilla JS(比如添加或removing a CSS class名称)。
JavaScript指令假设以分号结尾;
你并不总是这样做,并且有些人声称除非绝对必要,否则你不应该这样做。但它确实使代码更清晰,因为允许JavaScript跨多行分割。所以分号告诉读者你已经完成了指令。我的建议是始终使用它们。
JavaScript可以灵活地使用&#39;单个&#39;和&#34;双&#34;引号。关于这一点有不同的意见,并且有很多论据支持/反对每一个,但实际上并不重要。但是,如果你坚持一种方法,那就更好了:
var string1 = "Stick to one set of quotes";
var string2 = 'else your code will look weird';
var string3 = `even this is allowed in modern JS`;
var string4 = "But this one is BROKEN';
还有一件事,也可以追溯到过去的日子......
当world wide web是新的时,没有JavaScript和网页只比普通文本好一点。唯一的互动是填写表格并提交&#39;它回到服务器。
如果您的<form>
元素包含<input type="submit">
按钮,那么浏览器的期望值是什么。如果按下该按钮,它将提交表格。如今,这实际上非常罕见!
如果您使用该安排,那么您可能会发现您的页面没有按照您的预期行事。因此,使用不具有任何特殊行为的非提交按钮会更安全:
<input type="button" value="My non-submit button">
这提出了很多建议。希望您现在可以看到之前出错的地方并更好地了解事物。
我希望你喜欢编码。这并不可怕,如果你擅长它,那么你将来可以做得很好。但如果真的吸引你的话,只能走那条路。如果您将大部分时间花在StackOverflow上寻求帮助,那实际上是一项糟糕的工作! ;)
如果时间太长并且您不想阅读它,那么我建议您不要成为开发人员。详细了解事情是如何运作的,这是一个非常重要的课程,你从不停止学习。