提问者:小点点

Html元素获取特定属性值


我想从选项元素onChange中获取“data-price”属性。 获取值确实有效,但我无法获取data-price属性。 我有下面的代码,它不工作。

null

function getComboA(selectObject) {
  var printit = selectObject.getAttribute("data-price");  
  console.log(printit);
}
/*with this it gets the value tho, but i need the data-price attribute
function getComboA(selectObject) {
  var printit = selectObject.value;  
  console.log(printit);
}

*/
<select id="comboA" onchange="getComboA(this)">
      <option  value="">Select combo</option>
      <option data-price=100 value="Value1">Text1</option>
      <option data-price=200 value="Value2">Text2</option>
      <option data-price=2003 value="Value3">Text3</option>
    </select>

null


共3个答案

匿名用户

这应该会使它起作用:

const comboA = document.querySelector('#comboA');
comboA.addEventListener('change', function(event) {
    console.log(event.target.options[event.target.selectedIndex].dataset.price);
});

这样,您也可以省略HTML中的函数调用。

匿名用户

您可以使用SelectObjectSelectedIndex获取索引,您可以使用该索引获取所选选项,然后您可以获取该选项的Data-Price属性。 代码:

function getComboA(selectObject) {
  var selectedIndex = selectObject.selectedIndex;  
  var selectedPrice = selectObject[selectedIndex].getAttribute("data-price");
  console.log(selectedPrice);
}

匿名用户

通过JavaScript:

var selection = document.getElementById("comboA");
selection.onchange = function(event){
  var printit  = event.target.options[event.target.selectedIndex].dataset.price;
  console.log(printit);
};

或者JQuery:

null

$('#comboA').change(function(){
      var printit =$(this).find(':selected').attr('data-price')
      console.log(printit);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="comboA" >
      <option  value="">Select combo</option>
      <option data-price=100 value="Value1">Text1</option>
      <option data-price=200 value="Value2">Text2</option>
      <option data-price=2003 value="Value3">Text3</option>
   </select>

相关问题