我正在尝试获取锚点列表,并在弹出窗口中显示锚点引用的文本。像一个弹出的词汇表。我尝试了几种不同的技术,但我无法工作,因为我对此很新。这种技术在firefox中有效,但在Internet Explorer中却没有。任何有关这方面的帮助将不胜感激,或者如果我应该使用不同的方法,请告诉我。
我有我的锚id,如id =“first”,然后它引用的文字为id =“2first”
$("a").click(function(){
var toGet = $(this).attr('id');
var holder =$("#2" + toGet);
var toShow = $(holder).html();
loadPopup(toShow);
return false;
});
答案 0 :(得分:2)
我猜IE不喜欢以数字开头的id
属性。来自HTML4 specification:
ID
和NAME
令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符( “ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。
HTML5 has this to say关于id
属性:
id
属性指定其元素的唯一标识符(ID)。该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。该值不得包含任何空格字符。
所以HTML5允许你几乎使用任何东西,但HTML4肯定不允许{2}的id
,这可能解释了IE的行为。您也可以找到感兴趣的this question。
尝试将“2”移到最后:
$("a").click(function(){
var toGet = this.id;
var holder = $("#" + toGet + '2');
var toShow = holder.html();
loadPopup(toShow);
return false;
});
答案 1 :(得分:0)
我知道这已经过时了,希望你现在已经找到了答案,但也许这会帮助其他人。如果您想避免在jQuery中单击它时遵循锚链接,并且您想要执行其他操作,则可以执行以下操作:
$("a").click(function(e){
e.preventDefault();
var toGet = this.id;
var holder = $("#" + toGet + '2');
var toShow = holder.html();
loadPopup(toShow);
return false;
});
通过将事件e
添加到该函数,您现在可以访问该事件并调用e.preventDefault()
,这将阻止链接被跟踪,而是执行它后面的代码。< / p>