在JavaScript中为特定元素添加属性

时间:2017-11-08 00:38:17

标签: javascript

我希望为type text var inputs = document.getElementsByTagName('input');

的所有元素添加新属性 你能告诉我哪里错了吗?

首先,我将所有类型为文本的元素标识如下(输入标记名称是包含文本类型的标记名称)

if (inputs.type =='text') {var att = document.createAttribute("class")}

其次,我将我的属性添加到文本类型为

的属性
inputs.hasAttribute("class");

然后当我想检查是否添加了新属性时

public static void shareApp(Context context) {
final String appPackageName = context.getPackageName();
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Check cool App at:" +"https://play.google.com/store/apps/details?id=" + appPackageName);
sendIntent.setType("text/plain");
context.startActivity(sendIntent);
}

我收到了这个错误

  

未捕获的TypeError:inputs.hasAttribute不是函数

2 个答案:

答案 0 :(得分:2)

<Row>
    {this.props.meds.Lotes}
</Row>

返回一个类似于list的数组,而不只是一个元素。因此,这是你应该做的:

  var ListRender = React.createClass({
    render: function() {
      return (
        <ul>
          {this.props.meds.Lotes.codigoLote(function(listValue){
            return <li>{listValue}</li>;
          })}
        </ul>
      )
    }
  });

. . .

<Row>
    <ListRender />
</Row>

更好的方法是:

document.getElementsByTagName('input');

答案 1 :(得分:1)

试试这个:

var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].type == 'text'){
        var att = document.createAttribute("class");  
        att.value = "testClass";
        inputs[i].setAttributeNode(att);
        console.log(inputs[i].hasAttribute("class"));
    }
}
<input type="text"/>
<input type="text"/>