Skip to main content
 首页 » 编程设计

jQuery之使用正则表达式获取数据值

2026年04月21日5343JeffreyZhao

我有这样的 html 标签:

<il class="currItem" data-sourcemp3="http://**"> 
<il class="currItem" data-sourcemp4="http://**"> 

我想获得这个数据值,即使这个mp3或mp4 我写道:

var A = $('.currItem').attr("data-source(.+)") 
console.log(A); 

或者:

var srcName = new RegExp(/data-source.+/g); 
var A = $('.currItem').attr(srcName) 
console.log(A); 

我得到“未定义”

我该怎么做? 提前致谢

请您参考如下方法:

这是 jQuery 对您帮助不大的情况之一。可能最简单的只是循环遍历属性,这些属性是 NamedNodeMap :

var value; 
var attrs = $('.currItem')[0].attributes; 
for (var n = 0; n < attrs.length; ++n) { 
    if (/^data-source.+$/.test(attrs[n].name)) { 
        value = attrs[n].value; 
        break; 
    } 
} 

示例:

$(".currItem").click(function() { 
  var value = "(not found)"; 
  var attrs = this.attributes; 
  for (var n = 0; n < attrs.length; ++n) { 
    if (/^data-source.+$/.test(attrs[n].name)) { 
      value = attrs[n].value; 
      break; 
    } 
  } 
  alert("Value: " + value); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
Click a list item below: 
<ul> 
  <li class="currItem" data-sourcemp3="http://**">xxxxx</li> 
  <li class="currItem" data-sourcemp4="http://**">xxxxx</li> 
</ul>

或者您可以循环属性 in many other ways ,它是一个类似数组的对象。