我的页面中有一张图片地图:
<div id="books">
<img src="images/books.png" width="330" height="298" border="0" \
usemap="#map_books" />
<map name="map_books" id="map_books" alt="books">
<area shape="poly" coords="17,73,81,288,210,248,254,264, ..." \
href="/about" alt="books" />
</map>
</div>
我有一个试图使用此映射在文档中查找图像的函数:
function(elemId) { // elemId = "#map_books"
if ($(elemId).attr("tagName") == "MAP") {
// find image using this map
var selector = "img [usemap=\\" + elemId + "]";
var img = $(selector);
if (img.length == 0) {
console.log("Could not find image using " + selector);
}
}
它找不到图像。
Could not find image using img [usemap=\#map_books]
我逃避了
elemId
,因为它starts with a hash并尝试了选择器的变体。$("img [usemap$=" + elemId.substring(1) + "]")
$("img").find("[usemap=\\" + elemId + "]")
都找不到图像。有任何想法吗?
最佳答案
您在img
和[usemap=\#map_books]
之间有一个空格。
这导致尝试将属性img
设置为usemap
的#map_books
子元素匹配。
您应该使用:
var selector = "img[usemap=\\" + elemId + "]";