如何在代码中获取attr属性的值

如何在代码中获取attr属性的值,第1张

在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来获取文本域中的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9326689.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存