我无法使用具有此属性的 querySelector 获取元素 xlink:href=""

问题描述 投票:0回答:1

正如标题所说。我尝试了CSS.escape,使用了*=。这是 Messenger.com 中图像元素的属性。这是属性:

xlink:href="https://scontent.fmnl30-3.fna.fbcdn.net/v/t1.15752-9/465963771_544837275103647_4349826739070598419_n.jpg?stp=dst-jpg_s100x100_tt6&_nc_cat=105&ccb=1-7&_nc_sid=b70caf&_nc_eui2=AeEE5u8FlX9KtW7o_4a1fcWzQWyJI-PzqL9BbIkj4_Oov6uILnLZg6T1c8o-T2A485rybU_gN9fnXxXiRImyJhV6&_nc_ohc=WrSpzvLT1H8Q7kNvgESzF8i&_nc_zt=23&_nc_ht=scontent.fmnl30-3.fna&oh=03_Q7cD1QHLwyfkg9vNTc79uL6_mfOkWFpf2y2DCqNFF0KdUo0goA&oe=677A81BA"

我期望选择一个元素,因为它存在于 DOM 中。一个有趣的发现是,当检查元素时,href 属性似乎是一个对象而不是字符串。我以前从未遇到过这样的事情。

由ChatGPT解决,与XML命名空间有关

const namespace = "http://www.w3.org/1999/xlink";
const images = Array.from(document.querySelectorAll("image")).filter(
    (el) => el.getAttributeNS(namespace, "href") === "url"
);
console.log(images);

但是,如果您有其他信息,请回答,这可能对其他人有帮助:)

javascript html dom selector queryselector
1个回答
0
投票

您需要对图像使用标签

const namespace = "http://www.w3.org/1999/xlink";
const images = Array.from(document.querySelectorAll('img')).filter(
    (el) => el.getAttributeNS(namespace, "href") === "url"
);
console.log(images);
© www.soinside.com 2019 - 2024. All rights reserved.