Saya mencoba menemukan elemen dalam html oleh angularjs.
Ini html-nya:
<button class="btn btn-primary multi-files" type="button">
<span>Choose multiple files</span>
</button>
<br/><br/>
<input ng-file-select type="file" multiple style="display: none"/><br/>
Saya mencoba untuk mendapatkan elemen tombol dengan nama kelas multi-file, lalu saya mencoba
var multibutton = angular.element(element.getElementsByClassName(".multi-files"));
Tetapi itu tidak berhasil, dan mencoba element.find
tetapi hanya berfungsi untuk tag.
Apakah ada fungsi yang bisa mendapatkan elemen dengan id atau classname di angularjs?
Jawaban:
getElementsByClassName
adalah fungsi pada Dokumen DOM. Ini bukanlah fungsi jQuery atau jqLite.Jangan tambahkan titik sebelum nama kelas saat menggunakannya:
Bungkus dengan jqLite (atau jQuery jika jQuery dimuat sebelum Angular):
Jika Anda ingin memilih dari
element
fungsi link in a directive, Anda perlu mengakses referensi DOM alih-alih referensi jqLite -element[0]
alih - alihelement
:Alternatifnya Anda dapat menggunakan
document.querySelector
fungsi (perlu titik di sini jika memilih berdasarkan kelas):Demo: http://plnkr.co/edit/AOvO47ebEvrtpXeIzYOH?p=preview
sumber
Anda tidak perlu menambahkan
.
digetElementsByClassName
, yaituNamun, saat menggunakan
angular.element
, Anda harus menggunakan pemilih gaya jquery:harus melakukan triknya.
Juga, dari dokumentasi ini, "Jika jQuery tersedia, angular.element adalah alias untuk fungsi jQuery. Jika jQuery tidak tersedia, angular.element mendelegasikan ke subset bawaan jQuery Angular, yang disebut" jQuery lite "atau" jqLite. ""
sumber
@tasseKATT's Answer is great, but if you don't want to make a directive, why not use
$document
?PLUNKR
sumber
angular.element('#Your element id')
melakukan pekerjaan yang sama.Jika Anda ingin mencari tombol hanya dengan nama kelasnya dan menggunakan jQLite saja, Anda dapat melakukan seperti di bawah ini:
Semoga ini membantu. :)
sumber