<p data-foo="bar">
同等のことをするにはどうすればいいでしょうか
document.querySelectorAll('[data-foo]')
どこクエリセレクタすべては利用不可?
少なくとも IE7 で動作するネイティブ ソリューションが必要です。IE6 は気にしません。
ベストアンサー1
getElementsByTagName('*') を実行し、"data-foo" 属性を持つ要素のみを返す関数を記述できます。
function getAllElementsWithAttribute(attribute)
{
var matchingElements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0, n = allElements.length; i < n; i++)
{
if (allElements[i].getAttribute(attribute) !== null)
{
// Element exists with attribute. Add to array.
matchingElements.push(allElements[i]);
}
}
return matchingElements;
}
それから、
getAllElementsWithAttribute('data-foo');