Py学习  »  Jquery

这两个javascript和jquery语句有什么区别?

CShore • 5 年前 • 1367 次点击  

抱歉,我是javascript和jquery的初学者。我想让jquery工作…无法理解这两种说法之间的区别:

console.log ($("#FirstName").value);
console.log(document.getElementById('FirstName').value);

第一个返回为“未定义”,而第二个正确地在我的文本输入框中给出了名称。这是那个盒子的HTML

<input type="text" id="FirstName" class="TabInput" value="'. $ListRow[3] . '">

我已经在文件中链接到jquery,并且其他jquery函数也在工作。我正在尝试看看jquery是如何工作的,也不明白为什么它们不一样…

如果我只是使用

console.log ($("#FirstName")

它起作用,但给了我:

r.fn.init[上一个对象:r.fn.init(1)]

不管那意味着什么…

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39015
 
1367 次点击  
文章 [ 5 ]  |  最新文章 5 年前
CShore
Reply   •   1 楼
CShore    6 年前

谢谢大家的帖子。这是一个简单的问题,但有一个微妙的问题,我(显然还有其他几个)错过了…jquery选择器将返回元素集合,而不是唯一的dom元素。谢谢@adrian的回答。

是的,看起来也可以使用.val()而不是.value。不过,我确实觉得这很奇怪,因为它似乎与第一个答案不符(因为它不要求我指定集合中的哪个元素),但无论如何,它仍然有效,并且为该元素提供了html“value”属性(在本例中,是在文本框中键入的名字)。

Florenz
Reply   •   2 楼
Florenz    6 年前
$("#FirstName") 

是纯javascript代码的jquery简写代码

document.getElementById("FirstName")

为了使用这两个代码获取元素的值,jquery使用 '.val()'

前任。

$('#FirstName').val();

而纯javascript代码使用 '值'

前任。

document.getElementById("FirstName").value;

总而言之:

$('').val(); 

等于

document.getElementById('').value;
el-teedee
Reply   •   3 楼
el-teedee    6 年前

$ (or jQuery()) 是一个jquery函数,它包装搜索的对象(由选择器),因此,返回的对象没有 value 属性,但提供实用程序方法以获取等效项。
.val() 在里面 http://api.jquery.com/category/manipulation/general-attributes/

Adrian Brand
Reply   •   4 楼
Adrian Brand    6 年前

document.getElementByID返回一个具有传入字符串ID的DOM对象。$(cssseelector)返回一个jquery对象,该对象包含一组与css选择器匹配的dom对象,在您的情况下,是具有id firstname的dom对象。

如果要直接访问value属性,则需要通过集合中的第一个dom对象或jquery方法val进行访问。

// Use the jQuery val function
console.log ($("#FirstName").val());

// Or get the first element and look at the value property
console.log ($("#FirstName")[0].value);

console.log(document.getElementById('FirstName').value);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="FirstName" class="TabInput" value="'. $ListRow[3] . '">
Aniket G
Reply   •   5 楼
Aniket G    6 年前

jquery不使用 .value . 它使用 .val()

这就是为什么它给了你未定义的

然而,javascript确实使用 .value 这就是为什么它给了你正确的答案。

javascript

document.getElementById("submit").addEventListener("click", function() {
  console.log(document.getElementById("text").value);
});
<input type="text" id="text" />
<button id="submit">Submit</button>

JQuery

$("#submit").click(function() {
  console.log($("#text").val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="text" />
<button id="submit">Submit</button>