やろうとしていることを達成することはできますが、代わりにデータ属性を使用することはほぼ確実です。
属性にデータをパックする代わりにid
、個別のdata-
属性を使用します。
<div id="my-div" data-type="2" data-owner="6" data-page="1" />
jQueryは、要素のデータ属性にアクセスするための非常に簡単な構文を提供します。
$('#my-div').data('type'); // "2"
$('#my-div').data('owner'); // "6"
$('#my-div').data('page'); // "1"
または、新しいデータ属性を変更/追加する場合:
$('#my-div').data("name", "bob"); // <div .... data-name="bob" />
マークアップにデータ属性を追加できない場合(たとえば、HTMLのみを使用し、HTMLを生成していない場合)、正規表現を使用してid
属性を分解できます。
var id = "type=2owner=6page=1";
id.match(/type=(\d+)/); // ["type=1", "1"]
id.match(/owner=(\d+)/); // ["owner=6", "6"]
id.match(/page=(\d+)/); // ["page=2", "2"]
上記のいずれも、2つの要素の配列を返します。ここで、2番目の要素は問題の数字です。