jQuery手册中这样写道:
$(expression, [context])
expression String 用来查找的字符串
context (可选) Element, jQuery 作为待查找的 DOM 元素集、文档或 jQuery 对象。
那么,你可以这样获取:
$('img:first-child', this)attr('src');
--------------------------------------
或者用原生js:
var a = documentgetElementById('my')getElementsByTagName('a');
var src = [];
for(var i=0;i<slength;i++){
srcpush(a[i]getElementsByTagName('img')[0]src);
}
包括我自己在内(其实我也就这两天才知道这样可以快速获取的),很多jQuery的使用者都对这一问题深感疑惑。为什么在众多方便的各种获取属性和设置属性的方法中就不能像DOM中一样直接设置html元素的outerHTML呢? 原生DOM中获取和设置html元素的outerHTML大家都很熟悉: // 原生DOM获取outerHTML alert('原生DOM获取outerHTML'); alert(documentgetElementById('lz66303')outerHTML); // 原生DOM设置outerHTML alert('原生DOM设置outerHTML'); documentgetElementById('lz66303')outerHTML = '<textarea id="lz66303"><hr>原生DOM设置outerHTML</textarea>'; 当然在jQuery中我们可以用prop()方法来获取和设置html元素的outerHTML,在网上若搜索jQuery获取outerHTML竟然还有人写出函数来了,可悲!——jQuery自带的方法不知还自以为自己写个函数这种方法是什么好的解决方案。 当你看到本文时,请转给更多还在用自定义函数获取outerHTML的jQuery使用者——我这个经验就没白分享了! 其实就这么简单: // 成功获取到 alert('jQueryprop()获取outerHTML'); alert($('textarea')prop('outerHTML')); // 成功设置,已生效 alert('jQueryprop()设置outerHTML'); $('textarea')prop('outerHTML', '<input>');
1、jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM *** 作中会经常用到attr(),attr()有4个表达式。
①、attr(属性名) //获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined )
②、attr(属性名, 属性值) //设置属性的值 (为所有匹配的元素设置一个属性值。)
③、attr(属性名,函数值) //设置属性的函数值 (为所有匹配的元素设置一个计算的属性值。不提供值,而是提供一个函数,由这个函数计算的值作为属性值。)
④、attr(properties) //给指定元素设置多个属性值,即:{属性名一: “属性值一” , 属性名二: “属性值二” , … … }。(这是一种在所有匹配元素中批量设置很多属性的最佳方式。 注意,如果你要设置对象的class属性,你必须使用'className' 作为属性名。或者你可以直接使用'class'或者'id'。)
2、那么怎么删除属性呢
jquery中删除属性的关键词是: removeAttr 注意A是大写的 看看怎么用的:
同样是用法一中的html代码, 我想删掉li的title属性, 那么就这样:
<script>
$("ul li:eq(1)")removeAttr("title");
</script>
就这么简单, attr 其实就是原生js中 getAttribute 的简化实现, 而removeAttr 就是 removeAttribute 的简写了。
3、那么是否有跟attr()相似的属性呢?
jquery中val()与之类似,
$(this)val();获取某个元素节点的value值,相当于$(this)attr("value");
$(this)val(value);设置某个元素节点的value值,相当于$(this)attr("value",value);
当然不同,jq选择器选择的结果是经过封装的dom对象(可以叫做jquery对象),添加了jq自身的一些专有的属性和方法,比如 $('xxx')index(),而原生的dom对象却不能这样用。
通过简单的方法就能在原生dom对象与jquery对象之间转换:
假如a是dom对象,那么$(a)就是转换后的jquery对象;
假如a是jquery对象,那么a[0]就是转换后的dom对象
html
javascript
以上两种方法调用还是不理想,模拟jQuery的做法:
设计原则:内容(HTML),样式(CSS),行为(JavaScript)三者分离:
以上就是关于Jquery先获取自身内部的元素属性值,该如何获取全部的内容,包括:Jquery先获取自身内部的元素属性值,该如何获取、怎样用jQuery自带方法/函数来获取outerHTML属性、jquery中如何获取和设置属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)