JavaScript通过搜索另一个自定义属性来更改自定义属性的值

时间:2018-10-04 05:37:46

标签: javascript

感谢您的阅读。 因此,输入标签没有ID或类名。 value属性也是自定义的。 这就是我正在尝试的。

HTML

<input name="password" data-value="">

@"var aTags = document.getElementsByTagName('input');
  var searchText = 'password';var found;  
  for (var i = 0; i < aTags.length; i++)
  {
    if (aTags[i].textContent == searchText){found = 
       aTags[i].setAttribute('data-value','123456789');  
       alert(found.getAttribute('data-value')); break;}
  }");

var myInput=$('input[data-value='']').setAttribute('data-value','12345678'); 
alert(myInput.getAttribute('data-value'));

我尝试按名称使用get元素,但是没有显示任何内容。我认为可能会有多种结果。我想要一个更安全的解决方案。

7 个答案:

答案 0 :(得分:1)

非常感谢大家,我没想到会有如此出色的答复。

我很想知道如何解决这个问题,但显然以下几行有效

aTags[i].value='123456789';

我想如果找不到确切的“值”属性,则将带有“值”一词的任何内容视为一个值字段。

感谢闪光,我想attr也可以解决这个问题。

答案 1 :(得分:0)

var myInput = $('input[name="password"]').setAttribute('data-value','12345678'); 
alert(myInput.getAttribute('data-value'));

尝试一下

答案 2 :(得分:0)

由于您已经在使用jQuery,因此可以使用attr()方法来获取指定属性的值。

var myInput = $('input[data-value]').attr("data-value","12345678");
console.log(myInput.attr('data-value'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" data-value="">

答案 3 :(得分:0)

var myInput = $('input[name="password"]').attr('data-value','12345678'); 
alert(myInput.attr('data-value'));

尝试这样的事情

答案 4 :(得分:0)

我希望它会有所帮助。

AppModule
const setAttribute = (attr, val) => input => {
  return input.setAttribute(attr, val)
}

window.addEventListener("load", () => {
  const searchValue = "1231"
  const selector = `input[value='${searchValue}']`;
  
  const inputs = Array.from(document.querySelectorAll(selector));
  
  inputs.map(setAttribute("data-value", "1231231"))
  })

答案 5 :(得分:0)

<input />是一个自闭元素,因此不会具有textContent属性。但是,是的,如果您使用<input>text content</input>,则在某些浏览器中可以使用,但在其他浏览器中则无法使用。

我建议将值保留在input上的属性中。按照下面的示例。

文档:

关于textContent:https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent

自动关闭元素:https://developer.mozilla.org/en-US/docs/Glossary/Empty_element

<input type="text" data-textcontent="password"/>

JS

var aTags = document.getElementsByTagName('input');
var found;
var searchText = 'password';var found;  
for (var i = 0; i < aTags.length; i++)
{
  console.log(aTags[i].getAttribute('data-textcontent'));
  if (aTags[i].getAttribute('data-textcontent') == searchText){ 
    aTags[i].setAttribute('data-value','123456789');  
    found = aTags[i].getAttribute('data-value');
    break;
  }
}

console.log(found);

答案 6 :(得分:0)

使用jQuery,您可以直接访问数据属性,但由于可能存在多个属性,因此必须循环访问它们:


AK▒Bh▒▒δ*@▒x~

或者,如果输入字段仅为一个,则使用id:

$.each($('input[data-value='']'),function(){
   $(this).data('value','12345678'); 
});

<input type='password' id="pwd" data-value="" />