
在xml里,我们可以简单的引用attr属性值,例如:
android:background="attr/colorPrimary"
android:minHeight="attr/actionBarSize"
当然,我们有时候也需要在代码中获取attr属性值:
TypedValue typedValue = new TypedValue();
contextgetTheme()resolveAttribute(RattryourAttr, typedValue, true);
// For string
typedValuestring
typedValuecoerceToString()
// For other data
typedValueresourceId
typedValuedata;
获取arrt样式中的值
以上是针对个体数值根据不同类型来获取的,如果想要获取 style 的话,需要在拿到 resourceId 之后再进一步获取具体数值,以 TextAppearanceLarge 为例:
<style name="TextAppearanceLarge">
<item name="android:textSize">22sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">textColorPrimary</item>
</style>
TypedValue typedValue = new TypedValue();
contextgetTheme()resolveAttribute(androidRattrtextAppearanceLarge, typedValue, true);
int[] attribute = new int[] { androidRattrtextSize };
TypedArray array = contextobtainStyledAttributes(typedValueresourceId, attribute);
int textSize = arraygetDimensionPixelSize(0 / index /, -1 / default size /);
arrayrecycle();
注意,要记得调用 TypedArrayrecycle() 方法回收资源。
jQuery获取方法
data()方法
//HTML代码 <div id="myDiv" data-appid="123" data-myname="lsxj" data-app-id="456" data-my-name="secondname"></div>
//获取属性
var appid = $("#myDiv")data("appid"); //123
var app-id = $("#myDiv")data("app-id"); //456
//属性赋值 $("#myDiv")data("appid","666");
//最终HTML代码 <div id="myDiv" data-appid="123" data-myname="lsxj" data-app-id="456" data-my-name="secondname"></div>
需要注意的是,data()的值进行修改并不会影响到DOM元素上的data-属性的改变。data()的本质其实是将一个 “cache” 附加到了对象上,并使用了一个特殊的属性名称。
所以上述代码中,虽然对div进行了data()赋值 *** 作,但HTML代码中div的data-appid的值仍然为123,因为data()只是修改了缓存的那个值,此时进行$('#myDiv')data("appid")的 *** 作,输出的结果为666
js获取data-的方式
通过dataset属性访问
//HTML代码
<div id="myDiv" data-appid="123" data-myname="lsxj"></div>
//js代码
var div = documentgetElementById("myDiv");
var appId = divdatasetappid;//获取data-appid的值
var myName = divdatasetmyname;//获取data-myname的值
//设置值
divdatasetappid = 456;
divdatasetmyname = "newname";
//最终HTML结果
<div id="myDiv" data-appid="456" data-myname="newname"></div>
dataset属性的值是DOMStringMap的一个实例,名值对的映射。每个data-name形式的属性都有一个对应的属性,只不过该属性名没有data-前缀。
兼容性:
需要注意的是,dataset中大小写的问题。带连字符连接的名称在使用的时候需要命名驼峰化。例如data-my-name对应的是datasetmyName的值。可看以下代码
//将上面代码的设置值部分进行修改divdatasetappId = 789;
divdatasetmyName = "secondname";
//最终结果
<div id="myDiv" data-appid="123" data-myname="lsxj" data-app-id="456" data-my-name="secondname"></div>
ObjectgetAttribute('属性名')
例如:
var myname = documentgetElementById('myid')getAttribute('name');
getAttribute可以用来取得标准属性值,也可用于获取自定义属性值与其对应的方法是setAttribute()
1、过去某个类的某个属性:
2,可以通过对象调用其属性:
3,创建对象 :类名 对象名 = new 类名();
4,调用属性:对象名属性
5,获取某个对象的所有属性
6,数组类型[] 数组名 = 对象名getClass()getDeclaredFields();
7,使用反射
public static void main(String[] args) {
Model model = new Model();
Field fd = new Field();
fdgetField(model);
}
private void getField(Object model) {
javalangreflectField[] fields = modelgetClass()getDeclaredFields();
for(javalangreflectField f:fields){
Systemoutprintln(fgetName());
}
}
前提是你想获得什么属性值。
<input id="inp" name="hello"><script>
var inp = documentgetElementById("inp");
alert(inpname);//此处获取的input的name值
</script>
比如如果你想获取input的name值,就代码如上所示
1JS方法:
<script>windowonload=function(){
var va = documentgetElementById("d1")childNodes;
for(var i=0;i<valength;i++){
if(va[i]nodeNametoLocaleUpperCase() == "A"){
alert("JS: "+va[i]attributes["linkId"]nodeValue);
}
}
};
</script>
2 Jquery方法:
<script src="jquery-191minjs" type="text/javascript"></script>
<script>
$(document)ready(function(){
$("#d1 a")each(function(){
alert("Jquery: "+$(this)attr("linkId"));
});
});
</script>
JS 获取HTML标签内的子节点的方法
子节点的个数:
documentgetElementById("id")childNodeslength
注意: 标签开/闭合算2个节点 第几个子几点:
documentgetElementById("id")childNodes[n]
示例:
这里是 length-4 处,margin-left:20px
输出:length=8
实例:
<div id="page_kx" style="text-align: center;" class="tac"> <span class="fy2">1</span> <a href="#">2</a> <a href="#">3</a> <a href="#">4</a> <a href="#">5</a> <a href="#">下一页</a> <a href="#">末页</a> </div> <script> var gor=documentgetElementById("page_kx"); var gorL=Number(gorchildNodeslength)-4; gorchildNodes[gorL]stylemargin="0 0 0 20px"; </script>
以上就是关于如何在代码中获取attr属性的值全部的内容,包括:如何在代码中获取attr属性的值、jquery怎么获得元素data属性值、怎么用JS来获取文本域中的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)