使用JQUERY更改按钮单击时html输入属性的值

时间:2018-01-05 22:40:44

标签: javascript jquery

我有一个包含输入字段的html代码,如下所示:

<input id="'+count+'" name="quan'+obj+'" type="button" data-quantity="1"/>
  

然而,输入字段的ID和名称是动态的,如上所示,因为id count 和名称 obj 是动态的。 (范围从1-5)

这意味着在某个时间,上述输入字段可能是:

<input id="4" name="quan2" type="button" data-quantity="1"/>

现在,我想要做的是当输入字段的名称 quan3 时,输入字段的数据量值或 quan(N)无论N(N)是什么。

  

数据量也包含动态值。

funcation get()
{
   count=3;
   obj=2;
   // What to do here to get the value of data-quantity???????
}

注意:我也在下面尝试了这个但是没有用。

$(".quan" + obj).attr("data-quantity","4"); // NOT WORKED
$("#" + count).attr("data-quantity","4"); // NOT WORKED

2 个答案:

答案 0 :(得分:1)

您尝试.quan,但.表示某个班级,您尝试#,但这表示id。要查询属性,您需要[],如下所示。另外^=带有属性查询意味着“以...开头”,所以你真的不需要担心数字值,除非它对你的逻辑很重要。

var count = 3;
var obj = 2;

// Report the 'data-quantity' attribute value now:
console.log($("input[name^='quan']").attr("data-quantity"));

// Locate all elements that have a `name` attribute that 
// has a value that starts with 'quan' and set their 'data-quantity'
// attribute value to "4".
$("input[name^='quan']").attr("data-quantity","4"); 

// Report the 'data-quantity' attribute value now:
console.log($("input[name^='quan']").attr("data-quantity"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="4" name="quan2" type="button" data-quantity="1">

答案 1 :(得分:1)

检查一下。

您希望通过选择名称以1,2,3 ... n结尾的输入来获取数据量的attr值。

这是如何做到的。

function getAttrValueFromInput (marker) {
	const attrValue = $(`input[name^='quan${marker}']`).data('quantity');
  
  return attrValue;
}

function setAttrValueFromInput (marker, value) {
$(`input[name^='quan${marker}']`).attr('data-quantity', value);
}

setAttrValueFromInput(2, 2000);


console.log(getAttrValueFromInput(2));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="1" name="quan1" type="button" data-quantity="1"/>
<input id="2" name="quan2" type="button" data-quantity="12"/>
<input id="3" name="quan3" type="button" data-quantity="90"/>