Tôi nghĩ danh hiệu là đủSự khác nhau giữa jQuery .val() và .attr ('value') là gì?
Trả lời
.val()
công trình rõ ràng về tất cả các yếu tố đầu vào loại một cách hữu ích, bao gồm <select>
... ngay cả trong trường hợp <select multiple>
, hộp kiểm tra, và nút radio (trong đó .val()
được hoặc đặt một mảng giá trị đã chọn không chỉ là một chuỗi).
Vì vậy, về cơ bản, chúng phục vụ các mục đích khác nhau, mặc dù .attr('value')
hoạt động giống nhau trong một số trường hợp, như hộp văn bản. Phương pháp ưa thích là .val()
để có được hành vi nhất quán ở mọi nơi.
Chỉ cần cho đá, đây là một ví dụ ít được biết đến cho các hộp kiểm mà làm .val()
ích:
<input name="mytest" type="checkbox" value="1">
<input name="mytest" type="checkbox" value="2">
<input name="mytest" type="checkbox" value="3">
<input name="mytest" type="checkbox" value="4">
Bạn có thể làm điều này:
$("input[name='mytest']").val([1, 2, 3]);
.... mà sẽ kiểm tra 3 hộp đầu tiên. You can give it a try here.
Cảm ơn ví dụ ít được biết đến hơn. – ScottE
Cũng được viết! Bạn có thể muốn thêm một hành trình ngắn trên chuẩn hóa trình duyệt chéo mà jQuery thực hiện với các phương thức như thế này. – mekwall
Cũng lưu ý rằng '.attr ('value')' đọc giá trị gốc, không phải trạng thái hiện tại. [Xem thêm.] (Http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue) – XML
Ngoài ra .attr ('value') trả về giá trị trước khi chỉnh sửa trường nhập. Và .val() trả về giá trị hiện tại.
Cảm ơn bạn. – Vikram
Để thêm vào câu trả lời của Actis ...
Cũng .attr ('giá trị') trả về giá trị đó là trước khi chỉnh sửa đầu vào lĩnh vực. Và .val() trả về giá trị hiện tại.
Khi làm việc với trường nhập văn bản, phương thức setter của .attr() và .val() hoạt động khác nhau.
.val('newval')
sẽ đặt giá trị người dùng nhìn thấy trên trang và cập nhật giá trị được trả về bởi các phương thức .val() tiếp theo gọi. Nó sẽ không đặt thuộc tính value = của phần tử.
OTOH
.attr('value','newval')
sẽ thiết lập giá trị = thuộc tính trên phần tử. Nếu người dùng chưa gõ và .val (newval) chưa được gọi, thì làm điều này cũng sẽ cập nhật trực quan kiểm soát và cập nhật giá trị trả về bởi .val().
Bạn có thể tra thêm với jsfiddle sau:
https://jsfiddle.net/jasonnet/vamLww2k/
Chúc may mắn.
- 1. Sự khác nhau giữa attr jQuery() và getAttribute()
- 2. Sự khác nhau giữa "window.location.href" và "window.location.hash" là gì?
- 3. JS.checked vs jquery attr ('checked'), sự khác biệt là gì?
- 4. Sự khác nhau giữa sysfs_create_file() và sysfs_create_group() là gì?
- 5. PowerShell: Sự khác nhau giữa 1234 và (1234) là gì?
- 6. Sự khác nhau giữa jQuery.bind() và jQuery.on() là gì?
- 7. Sự khác nhau giữa NSKeyValueObservingOptionNew và NSKeyValueObservingOptionOld là gì?
- 8. Sự khác nhau giữa .delegate() và live() là gì?
- 9. Sự khác nhau giữa .serialize() và .serializeArray() là gì?
- 10. Sự khác nhau giữa ObservableCollection và INotifyPropertyChanged là gì?
- 11. Sự khác nhau giữa $ (this) và điều này trong jquery
- 12. Sự khác biệt giữa định nghĩa var và val trong Scala là gì?
- 13. Sự khác nhau giữa giao diện người dùng jquery và jquery là gì?
- 14. Sự khác nhau giữa WPF và WinForms là gì?
- 15. Sự khác nhau giữa JavaScript và Java là gì?
- 16. Sự khác nhau giữa ODBC và OleDB là gì?
- 17. Sự khác nhau giữa SGML và XML là gì?
- 18. Sự khác nhau giữa DefaultSelenium và RemoteWebDriver là gì?
- 19. Sự khác nhau giữa RMI và Corba là gì?
- 20. Sự khác nhau giữa scgi và wsgi là gì?
- 21. Sự khác nhau giữa wsHttpBinding và ws2007HttpBinding là gì?
- 22. Sự khác nhau giữa Pingback và Trackback là gì?
- 23. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 24. Sự khác nhau giữa AxInterop và Interop là gì?
- 25. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 26. Sự khác nhau giữa .bashrc, .bash_profile và .environment là gì?
- 27. Sự khác nhau giữa JSP và Facelets là gì?
- 28. Sự khác nhau giữa hg quên và hg là gì?
- 29. Sự khác nhau giữa GDI và GDI + là gì?
- 30. Sự khác nhau giữa đá quý và plugin là gì?
jQuery .val() vs .attr ("giá trị"): http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue –