如果它是一个数字或包含数字,jQuery中的this.id将不会获取元素id
我有一堆自动生成的div,它们的id有一个数字。 每当我使用this.id获取id时,它都不会输出任何内容。 但是,当Id仅为文本时,它会正确输出ID。 我怎么能解决这个问题? 一切都有帮助。 谢谢
编辑:
$(".draggable").draggable(); $("*", document.body).click(function (e) { var offset = $(this).offset(); e.stopPropagation(); $("#result").text(this.tagName + " ID:" + this.id + " Coord:" + offset.left + " " + offset.top); $.post("http://localhost/framework/test.php", "id=" + this.id + "&x=" + offset.left + "&y=" + offset.top); });
这是违法的代码。 然而,它将获得div的id,而不应用“draggable”类。
Im an Image Posted by:Teh_noob Posted on: 9/15/1991 Youtube test Posted by:teh nub Posted on: 9/11/01 Text box Posted by:teh noob Posted on: 8/23/09 TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTEST
请注意,仅限数字的ID无效。 有关详细信息,请参阅此post 。
简短而甜蜜的是:
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ – ”),下划线(“_”) ,冒号(“:”)和句号(“。”)。
虽然允许使用句号和冒号,但我不推荐它。
如果您必须根据id进行选择,jQuery将会失败,因为它会认为它是一个新的类选择器或filter。
在生成的html中添加一个前缀,如:
Im an Image Posted by:Teh_noob Posted on: 9/15/1991
并在java脚本中添加相同的前缀
您正在尝试使用完全覆盖它们的其他子元素获取元素的ID …这就是您没有获得任何ID的原因。
而不是this.id,请尝试e.target.id。 如果你点击flash影片,那么你得到id =“flash”。
你也瞄准了错误的元素。