1 つの簡単な方法 (面倒な文字列操作を避ける):
var editText = "<span class='hover-content' data-hover-id='2' >Some text</span>",
tmp = document.createElement('div');
tmp.innerHTML = editText;
tmp.style.display = 'none';
document.getElementsByTagName('body')[0].appendChild(tmp);
var hoverId = tmp.getElementsByTagName('span')[0].getAttribute('data-hover-id');
tmp.parentNode.removeChild(tmp);
alert(hoverId);
JS フィドルのデモ。
ただし、次のことを前提とします。
この文字列は操作されます。
私も提供します:
var editText = "<span class='hover-content' data-hover-id='2' >Some text</span>",
parts = editText.split(/\s+/),
hoverId = -1;
for (var i = 0, len = parts.length; i < len; i++) {
if (parts[i].indexOf('data-hover-id') == 0) {
hoverId = parseInt(parts[i].split('=')[1].match(/\d+/), 10)
}
}
console.log(hoverId);
JS フィドルのデモ。
そして、より簡潔な(おそらく壊れやすい)ソリューション:
var editText = '<span class="hover-content" data-hover-id=2 >Some text</span>',
hoverId = editText.match(/\s?data\-hover\-id=(?:['"])?(\d+)(?:['"])?/)[1] || -1;
console.log(hoverId);
単一引用符で囲まれた ( '
) 属性値で動作します: JS Fiddle demo。
二重引用符で囲まれた ( "
) 属性値で動作します: JS Fiddle demo。
引用符で囲まれていない値を操作する: JS Fiddle demo。