JQuery找不到文本区域值



我的HTML文件中有一个文本区域,我想将其内容发送到控制台。这里的代码:

<p class="i_link">Link:</p>
<textarea name="link" id="Story_Link" cols="100" rows="1"></textarea><br>
<!--!name-->
<p class="i_name">Name:</p>
<textarea name="name" id="Story_Name" cols="50" rows="1"></textarea><br>
<!--!number-->
<p class="i_number">Number:</p>
<textarea name="number" id="Story_Number" cols="1" rows="1"></textarea><br>
<!--!author-->
<p class="i_author">Author:</p>
<textarea name="author" id="Story_Author" cols="50" rows="1"></textarea><br>
<button onclick="myFunction()">Click me</button>
​
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
​
<script>
function myFunction() {
console.log('hello ' + $('i_link').val())
}
</script>

但它将hello undefined打印到控制台。我希望得到我的文本区域的值,而不是未定义的。

如何获得预期的输出?

更换线路

console.log('hello ' + $('i_link').val())

带有

console.log('hello ' + $('#Story_Link').val())

您试图从<p>标记中获取值,但错过了.类选择器。

我的解决方案将查找您的Story_Link文本区域。我使用哈希符号通过id查找该文本区域。

在这里,您将找到有关如何使用jquery:在HTMLDOM中查找元素的更多信息

  • 按类选择元素https://api.jquery.com/class-selector/
  • 按id选择元素https://api.jquery.com/id-selector/
  • jquery中的各种选择器https://api.jquery.com/category/selectors/

这里我为您提供了一个工作示例:

function myFunction() {
console.log('hello ' + $('#Story_Link').val())
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="i_link">Link:</p>
<textarea name="link" id="Story_Link" cols="100" rows="1"></textarea><br>
<!--!name-->
<p class="i_name">Name:</p>
<textarea name="name" id="Story_Name" cols="50" rows="1"></textarea><br>
<!--!number-->
<p class="i_number">Number:</p>
<textarea name="number" id="Story_Number" cols="1" rows="1"></textarea><br>
<!--!author-->
<p class="i_author">Author:</p>
<textarea name="author" id="Story_Author" cols="50" rows="1"></textarea><br>
<button onclick="myFunction()">Click me</button>

您的问题是,您没有为jQuery对象提供与元素匹配的CSS选择器,因此它找不到任何元素来获取的值。如果要获取作者名称,则需要传递#Story_Author,因为这是输入数据的textareaid

<p class="i_link">Link:</p>
<textarea name="link" id="Story_Link" cols="100" rows="1"></textarea><br>
<!--!name-->
<p class="i_name">Name:</p>
<textarea name="name" id="Story_Name" cols="50" rows="1"></textarea><br>
<!--!number-->
<p class="i_number">Number:</p>
<textarea name="number" id="Story_Number" cols="1" rows="1"></textarea><br>
<!--!author-->
<p class="i_author">Author:</p>
<textarea name="author" id="Story_Author" cols="50" rows="1"></textarea><br>
<button onclick="myFunction()">Click me</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
function myFunction() {
console.log('hello ' + $('#Story_Author').val())
}
</script>

但是,除此之外,你还有很多问题。

jQuery是一个功能强大的JavaScript库,它可以使做非常复杂的事情变得更加简单。当它最初被引入时,核心JavaScript语言以及DOM API并不像现在那么成熟;香草";JavaScript很麻烦。现在已经不是这种情况了,因此,jQuery完成这些琐碎任务的需求已经消失了。对于您正在做的事情,jQuery只会使事情变得更加复杂。以下是在没有jQuery的情况下完成此操作所需的全部内容:

<p class="i_link">Link:<br>
<input id="Story_Link"></p>
<p class="i_name">Name:<br>
<input id="Story_Name"></p>
<p class="i_number">Number:<br>
<input id="Story_Number"></p>
<p class="i_author">Author:<br>
<input id="Story_Author"></p>
<button>Click me</button>
<script>
// Get references to any elements you'll reference more than once, just once
const link = document.getElementById("Story_Link");
const name = document.getElementById("Story_Name");
const number = document.getElementById("Story_Number");
const author = document.getElementById("Story_Author");
// Do your event binding in JavaScript, not HTML
document.querySelector("button").addEventListener("click", function(){
console.log('Hello ' + author.value + " Here are your details:");
console.log("tStory Link: " + link.value);
console.log("tStory Name: " + name.value);
console.log("tStory Number: " + number.value);  
});
</script>

正如您从上面看到的,HTML要简单得多,不需要引用jQuery,纯JavaScript也非常简单。

此外:

  • <textarea>用于多行输入。当你只有要收集的短字符串,<input>是要使用的正确元素
  • CCD_ 9在CCD_好几年了
  • 你真的不应该结束你的段落,然后它们下面的内容,使用一个break将自己与下一个分隔开段落段落是完整的想法。查看更新后的HTML在上面的回答中

将脚本代码更改为以下

<script>
function myFunction() {
console.log('hello ' + $('#Story_Author').val())
}
</script>

请注意。$('._link)使用jquery时,必须传递类或id的选择器对于你必须添加的类。开始时对于id,您必须在开始时添加#

示例:选择id为myId 的元素

$('#myId')

选择类别为myClass 的元素

$('.myClass')

此外,HTML中的p标记没有附加值如果你想在文本区域中获得值,你应该选择测试区域的id

您想要从文本区域获取值/text,因此您必须编写:

$('#Story_Link').val()

相关内容

  • 没有找到相关文章

最新更新