Heim  >  Artikel  >  Web-Frontend  >  Grundlegendes jQuery-Tutorial zum Betrieb verschiedener Elemente_jquery

Grundlegendes jQuery-Tutorial zum Betrieb verschiedener Elemente_jquery

WBOY
WBOYOriginal
2016-05-16 16:38:321215Durchsuche

Die Beispiele in diesem Artikel beschreiben die Vorgänge von jQuery für Elemente, einschließlich grundlegender Vorgänge, der Auswahl der zu bearbeitenden Elemente und der Verarbeitung von DOM-Elementen. Es hat einen guten Referenzwert zum Erlernen von jQuery. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

1. Grundlagen

jquery-Objektsatz:

$(): Sammlung von JQuery-Objekten

Elemente im JQuery-Objektsatz abrufen:

Rufen Sie das Javascript-Element im Wrapper mit dem Index ab:

var temp = $('img[alt]')[0]

Verwenden Sie die Get-Methode von JQuery, um die Javascript-Elemente im JQuery-Objektsatz abzurufen:

var temp = $('img[alt]').get(0)

Verwenden Sie die eq-Methode von jquery, um die Jquery-Objektelemente im JQuery-Objektsatz abzurufen:

$('img[alt]').eq(0)
$('img[alt]').first()
$('img[alt]').last()

JQuery-Objektsatz in Javascript-Array konvertieren:

var arr = $('label+button').toArray()

Alle Schaltflächenelemente derselben Ebene hinter der Beschriftung werden in JavaScript-Arrays umgewandelt

Index des JQuery-Objektsatzes:
var n = $('img').index($('img#id')[0]) Hinweis: Der index()-Parameter ist ein Javascript-Element
var n = $('img').index('img#id') entspricht der vorherigen Zeile. Wenn nicht gefunden, wird -1
zurückgegeben var n = $('img').index() ruft den Index von img im gleichen Ebenenelement

ab

Fügen Sie weitere JQuery-Objektsätze zum JQuery-Objektsatz hinzu:
Verwenden Sie Kommas:

$('img[alt],img[title]')

Verwenden Sie die Add-Methode:

$('img[alt]').add('img[title]')

Verwenden Sie verschiedene Methoden für verschiedene JQuery-Objekte:

$('img[alt]').addClass('thickBorder').add('img[title]').addClass('');

Neu erstellte Elemente zum JQuery-Objektsatz hinzufügen:

$('p').add('<div></div>');

Elemente aus dem JQuery-Objektsatz löschen:

$('img[title]').not('[title*=pu]')
$('img').not(function(){return !$(this).hasClass('someClassname')})

Jquery-Objektsatz filtern:
$('td').filter(function(){return this.innerHTML.match(^d $)}) filtert td

mit Zahlen

Erhalten Sie eine Teilmenge des JQuery-Objektsatzes

$('*').slice(0,4) Ein neuer Satz von JQuery-Objekten, der die ersten 4 Elemente enthält
$('*').slice(4) Ein neuer Satz von JQuery-Objekten, der die ersten 4 Elemente enthält
$('div').has('img[alt]')

Elemente im JQuery-Objektsatz konvertieren:

var allIds = $('div').map(function(){
 return (this.id==undefined) &#63; null : this.id;
}).get();

Das obige Beispiel kann über die get-Methode in ein Javascript-Array umgewandelt werden.

Durchlaufen Sie die Elemente im JQuery-Objektsatz:

$('img').each(function(n){
 this.alt = '这是第['+n+']张图片,图片的id是' + this.id;
})
$([1,2,3]).each(function(){alert(this);})

Erhalten Sie eine Reihe von JQuery-Objekten mithilfe von Beziehungen zwischen Elementen:

$(this).closest('div') Zum Beispiel, in welchem ​​Div die ausgelöste Schaltfläche vorkommt
$(this).siblings('button[title="Close"]')Alle Geschwisterelemente, außer sich selbst
$(this).children('.someclassname')Alle untergeordneten Knotenelemente, mit Ausnahme doppelter untergeordneter Knoten
$(this).closest('') liegt nahe am Vorgängerelement
$(this).contents() ist eine Reihe von JQuery-Objekten, die aus Elementinhalten bestehen. Sie können beispielsweise den Inhalt des d5ba1642137c3f32f4f4493ae923989c abrufen $(this).next('.someclassname')Nächstes Geschwisterelement
Alle Geschwisterelemente nach $(this).nextAll()
Alle Geschwisterelemente nach $(this).nextUntil('.someclassname') bis zum Zielelement
$(this).offsetParent()Das übergeordnete Element, das dem JQuery-Objektsatz am nächsten liegt
$(this).parent()direktes übergeordnetes Element
$(this).parents()alle übergeordneten Elemente
$(this).parrentsUntil() alle übergeordneten Elemente bis zum übergeordneten Zielelement
$(this).prev()Vorheriges Geschwisterelement
Alle Geschwisterelemente vor $(this).prevAll()
Alle Geschwisterelemente vor $(this).prevTntl() bis zum Zielelement

Andere Möglichkeiten, JQuery-Objektsätze zu erhalten:


$(this).find(p span)
Bestimmen Sie, ob es sich um einen JQuery-Objektsatz handelt:


var hasImg = $('*').is('img');
JQuery-Methode:


$().hide()
$().addClass('')
$().html('')
$('a').size()Anzahl der Elemente

jquery-Selektor:


$('p:even')
$('tr:nth-child(1)')
$('body > div') direktes untergeordnetes Element
$('a[href=$='pdf']')Auswahl nach Attributen
$(div:has(a))-Filter

jquery-Funktion:


$.trim()
JQuery-Ausführungszeit:
$(document).ready(function(){});
$(function(){});

DOM-Element erstellen:


$('<p></p>').insertAfter();
$('<img>',{
 src: '',
 alt: '',
 title: '',
 click: function(){}
}).css({
 cursor:'pointer',
 border:'',
 padding:'',
 backgroundColor:'white'
}).append('');
jquery-Erweiterung:


$.fn.disable = function(){
 return this.each(function(){
 if(this.disabled != null) this.disabled = true;
 })
};
$('').disable();

jquery测试元素是否存在:

if(item)(){}else{} 宽松测试
if(item != null) 推荐测试,能把null和undefined区别开

2、选择要操作的元素

根据标签名:$('a')  
根据id:$('#id')
根据类名:$('.someclassname')
满足多个条件:$('a#id.someclassname') 或 $('div,span')
某个元素的所有子节点:$(p a.someclassname)
某个元素的直接子节点:$(ul.myList > li)
根据属性名:
$(a[href^='http://']) 以...开头
$(href$='.pdf')以...结尾
$(form[method])包含method属性的form
$(intput[type='text'])
$(intput[name!=''])
$(href*='some')包含

某元素后的第一个元素:$(E+F)匹配的是F,F是E后面的第一个元素

某元素后的某一个元素:$(E~F)匹配的是F,F是E后面的某一个元素

通过位置:

$(li:first)第一个li
$(li:last)最后一个li
$(li:even)偶数行li
$(li:odd)奇数行li
$(li:eq(n))第n个元素,索引从0开始
$(li:gt(n))第n个元素之后的元素,索引从0开始
$(li:lt(n))第n个元素之前的元素,索引从0开始
$(ul:first-child)列表中的第一个li
$(ul:last-child)列表中的最后一个li
$(ul:nth-child(n))列表中的第n个li
$(ul:only-child)没有兄弟li的ul
$(ul:nth-child(even))列表中的偶数行li,odd为计数行li
$(ul:nth-child(5n+1))列表中被5除余1的li

通过过滤器:

$(input:not(:checkbox))
$(':not(img[src*="dog"])')
$('img:not([src*="dog"])')
$(div:has(span))
$('tr:has(img[src$="pu.png"])')
$(tr:animated)处于动画状态的tr
$(input:button)包括type类型为button,reset,submit的Input
$(input:checkbox)等同于$(input[type=checkbox])
$(span:contains(food))包含文字food的span
$(input:disabled)禁用
$(input:enabled)启用
$(input:file)等同于$(input[type=file])
$(:header)h1到h6
$(input:hidden)
$(input:image)等同于$(input[type=image])
$(:input)包括input, select, textarea, button元素
$(tr:parent)
$(input:password)等同于$(input[type=password])
$(input:radio)等同于$(input[type=radio])
$(input:reset)等同于$(input[type=reset])或$(button[type=reset])
$('.clssname:selected')
$(input:submit)等同于$(input[type=submit])或$(button[type=submit])
$(input:text)等同于$(input[type=text])
$(div:visible)

3、处理DOM元素  

操作元素的属性:

$('*').each(function(n){
 this.id = this.tagName + n;
})

获取属性值:

$('').attr('');

设置属性值:

$('*').attr('title', function(index, previousValue){
 return previousValue + ' I am element ' + index + ' and my name is ' + this.id;
}) //为一个属性设置值
$('input').attr({
 value: '',
 title: ''
}); //为多个属性设置值

删除属性:

$('p').removeAttr('value');

让所有链接都在新窗口中打开:

$('a[href^="http://"]').attr('target',"_blank");

避免表单多次提交:

$("form").submit(function(){
 $(":submit", this).attr("disabled","disabled");
})

添加类名:

$('#id').addClass('')

删除类名:

$('#id').removeClass('')

切换类名:

$('#id').toggleClass('')

存在就删除类名,不存在就添加类名
判断是否含有类名:

$('p:first').hasClass('') $('p:first').is('')

以数组形式返回类名列表:

$.fn.getClassNames = function(){
 var name = this.attr('someclsssname');
 if(name != null){
 return name.split(" ");
 }
 else
 {
 return [];
 }
}

设置样式:

$('div.someclassname').css(function(index, currentWidth){
 return currentWidth + 20;
});
$('div').css({
 cursor: 'pointer',
 border: '1px solid black',
 padding: '12px 12px 20px 20x',
 bacgroundColor: 'White'
});

有关尺寸:

$(div).width(500)
$('div').height()
$('div').innerHeight()
$('div').innerWidth()
$('div').outerHeight(true)
$('div').outerWidth(false)

有关定位:

$('p').offset()相对于文档的参照位置
$('p').position()偏移父元素的相对位置
$('p').scrollLeft()水平滚动条的偏移值
$('p').scrollLeft(value)
$('p').scrollTop()
$('p').scrollTop(value)

有关元素内容:

$('p').html()
$('p').html('')
$('p').text()
$('p').text('')

追加内容

在元素末尾追加一段html:

$('p').append('<b>some text</b>');

在元素末尾dom中现有的元素:

$('p').append($(a.someclassname))

在元素开头追加:

$("p").prepend()

在元素的前面追加:

$("span").before()

在元素的后面追加:

$("span")after()

把内容追加到末尾:

appendTo(targets)

把内容追加到开头:

prependTo(targets)

把内容追加到元素前面:

insertBefore(targets)

把内容追加到元素后面:

$('<p></p>').insertAfter('p img');

包裹元素:

$('a.someclassname').wrap("07696998b3b678eb4661474f91839ba416b28748ea4df4d9c2150843fecfba68")
$('a.someclassname').wrap($("div:first")[0])
$('a.someclassname').wrapAll()
$('a.someclassname').wrapInner()
$('a.someclassname').unWrap()

删除元素:

$('.classname').remove()删除元素,绑定到元素上的事件和数据也会被删除
$('.classname').detach()删除元素,但保留事件和数据
$('.classname').empty()不删除元素,但清空元素内容

复制元素:

$('img').clone().appendTo('p.someclassname')
$('ul').clone().insertBefore('#id')

替换元素:

$('img[alt]').each(function(){
 $(this).replaceWith('<span>' + $(this).attr('alt') + '</span>');
})
$("p").replaceAll("<b></b>")

关于表单元素的值:

$('[name="radioGroup"]:checked').val()获取单选按钮的值,如果没有选中一个,返回undefined
var checkboxValues = $('[name="checkboxGroup"]:checked').map(function(){
 return $(this).val();
}).toArray(); //获取多选框的值

对于e6d7620a2d38edfa6339e44aa37aea3d使用$('#list').val()返回值的数组
$('input').val(['one','two','three'])如果单选框或复选框与数组中的元素匹配,则选中状态

相信本文所述对大家的jQuery程序设计有一定的借鉴价值。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn