如何从公式中读出数据?

时间:2018-02-23 10:23:16

标签: javascript html

我正在上学。任务是从公式中读出数据。虽然我不太了解,但我仍然坚持第一个任务。第一项任务的结果应该是:“你的名字有......人物。”所以基本上如果我在文本字段中输入一个名称并按下提交按钮,它应该给我.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();
        }              
    })
};

我真的不知道什么是错的。你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

由于这是一个学校练习,一些指示可能是有用的,以配合另一个答案,这是一个有效的解决方案......

jQuery vs Vanilla JS

您正在使用jQuery,这是一个JavaScript库(可重复使用的代码),可以使一些工作变得更容易,尤其是在浏览器中的元素操作方面(DOM元素)。回过头来,jQuery还做了一个更重要的工作,正常化&#39;不同的浏览器(Internet Explorer,Firefox,Opera,Netscape等)在遵守标准之前。

如今,jQuery作为标准化程序并不那么重要,但仍然非常便于选择元素和更改样式,内容和处理事件。

在你的例子中,你正在做一些基本的事情&#34; Vanilla JS&#34;方式和一些与jQuery。在一些地方,你有点混乱,并尝试混合各种方式,这不会工作......

引用元素

by id

如果您有<div id="myDiv"></div>之类的元素,那么您可以使用Vanilla JS访问它:

document.getElementById("myDiv");

或jQuery:

$("#myDiv");

请注意,您只提供带有getElementById的真实id,没有哈希。

通过CSS选择器

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

在您的示例中,您使用了jQuery将一些代码附加到按钮的click事件中。

$("#Ausgabe").on("click",function(){
    // blah
});

这很棒,并且附加了你的功能,以便稍后点击按钮时运行。

包含元素属性(坏方法)

但是,您已将其放在另一个使用旧式onclick属性单击按钮时显式调用的函数中。

<input id="Ausgabe" ... onclick="ausgabe()">

您的jQuery事件最初未附加。只有当onclick属性处理第一次单击时才会这样。因此,您必须单击按钮以附加事件处理程序以处理单击按钮。你看过电影Inception吗?您需要考虑采取哪种方法。你应该肯定附加到事件而不是使用onclick。

Vanilla JS

但是,您也可以使用Vanilla JS:

document.getElementById("Ausgabe").addEventListener("click", function() { /* your code goes here */ });

设置内容

Vanilla JS

您已使用Vanilla JS方法设置元素的内容,这很棒:

document.getElementById('lname').innerHTML = Namee;

的jQuery

但是jQuery提供了另一种方法:

$("#lname").html(Namee);

保持一致

Vanilla JS vs jQuery

为了使编写和读取代码更容易,最好保持一致。决定你是否要使用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上寻求帮助,那实际上是一项糟糕的工作! ;)

TL; DR

如果时间太长并且您不想阅读它,那么我建议您不要成为开发人员。详细了解事情是如何运作的,这是一个非常重要的课程,你从不停止学习。