我遇到了一些奇怪的麻烦(我在数据表中),目标是包含页码的范围。这是我正在运行的HTML。
<span>
<span class="target_me fg-button ui-button ui-state-default ui-state-disabled">1</span>
<span class="target_me fg-button ui-button ui-state-default">2</span>
</span>
但是当我将click事件放在每个号码上并打电话
时alert($(this).parent().html())
它呈现上面的整个代码,而不仅仅是初始范围。这只会呈现页码“2”或“1”。
alert($(this).html())
任何人都知道为什么会这样?
谢谢!
答案 0 :(得分:3)
你得到了你所要求的。如果您只想要this
的标记,请尝试:
alert( $(this).wrap('<div>').parent().html() );
$(this).unwrap();
较短的技术涉及在DOM之外进行克隆:
alert( $('<div>').append($(this).clone()).html() );
答案 1 :(得分:1)
这是预期的行为。当您使用$(this).parent().html()
时,它会在您的代码中获得第一个span
。(下面的CAPITAL案例中的那个)
<SPAN>
<span class="target_me fg-button ui-button ui-state-default ui-state-disabled">1</span>
<span class="target_me fg-button ui-button ui-state-default">2</span>
</SPAN>
自然会打印出里面的所有HTML ..
当您致电$(this).html()
时,它会获得您点击的SPAN。在这种情况下,根据您点击的数字得到1或2 ..
答案 2 :(得分:1)
我想你想要这个:
alert(this.outerHTML)
答案 3 :(得分:0)
alert($(this).parent().html())
这将转到<span>
标记并提醒其中的HTML。
$(this).html()
当单击某个项目时,会在单个范围内呈现HTML,因此1和2会像预期的那样呈现。
你想要达到什么目标?