Javascript jQuery中目标包含范围的问题

Javascript jQuery中目标包含范围的问题,javascript,jquery,datatables,Javascript,Jquery,Datatables,我遇到了一些奇怪的问题(我在datatables中),目标是页码的包含范围。这是我正在运行的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&

我遇到了一些奇怪的问题(我在datatables中),目标是页码的包含范围。这是我正在运行的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>
它呈现上面的整个代码,而不仅仅是初始跨度。这仅呈现页码“2”或“1”

有人知道为什么会这样吗

谢谢

alert($(this).parent().html())
这将转到
标记并警告其中的HTML

$(this).html()
单击某个项目时,将在单个范围内呈现html,因此1和2与预期的一样

你想达到什么目标

这将转到
标记并警告其中的HTML

$(this).html()
单击某个项目时,将在单个范围内呈现html,因此1和2与预期的一样


你想要实现什么?

你得到的正是你想要的。如果您只需要此的标签,请尝试:

alert( $(this).wrap('<div>').parent().html() );
$(this).unwrap();
alert($(this.wrap('').parent().html());
$(this.unwrap();
较短的技术涉及到在DOM之外进行克隆:

alert( $('<div>').append($(this).clone()).html() );
alert($('').append($(this.clone()).html());

你得到的正是你想要的。如果您只需要此的标签,请尝试:

alert( $(this).wrap('<div>').parent().html() );
$(this).unwrap();
alert($(this.wrap('').parent().html());
$(this.unwrap();
较短的技术涉及到在DOM之外进行克隆:

alert( $('<div>').append($(this).clone()).html() );
alert($('').append($(this.clone()).html());

这是预期的行为。当您使用
$(this).parent().html()
时,它将获取代码中的第一个
span
。(下面大写字母中的一个)


1.
2.
当然,它会打印其中的所有HTML


当您调用
$(this).html()
时,它将获得您单击的范围。在这种情况下,根据单击的数字得到1或2。

这是预期的行为。当您使用
$(this).parent().html()
时,它将获取代码中的第一个
span
。(下面大写字母中的一个)


1.
2.
当然,它会打印其中的所有HTML


当您调用
$(this).html()
时,它将获得您单击的范围。在这种情况下,根据您单击的数字,您会得到1或2。

我想您想要这个:

alert(this.outerHTML)

我想你想要这个:

alert(this.outerHTML)

我不明白。你问的是父html,所以你有父html。你的问题能再精确一点吗?也许是代码附加了事件处理程序?看看这个问题,我认为你想要实现类似的事情。很抱歉没有说得那么具体。我试着用数字的跨度来代替容器。我还是不明白:我的答案不正是你想要的吗?我不明白。你问的是父html,所以你有父html。你的问题能再精确一点吗?也许是代码附加了事件处理程序?看看这个问题,我认为你想要实现类似的事情。很抱歉没有说得那么具体。我试着用数字的跨度来代替容器。我还是不明白:我的答案不正是你想要的吗?嘿嘿。那是个聪明的把戏。您还可以执行
警报($(this)[0].outerHTML),但当然不是所有浏览器都支持outerHTML,您的技巧与旧浏览器更兼容。这很好。我是否可以将其作为变量,以便在if-else语句中使用它?var outerHTML=$('').append($(this.clone()).html();如果($(outerHTML).hasClass('ui-state-disabled'){do something}那么,是的
.html()
输出一个字符串,您可以将该字符串指定给变量,并根据需要使用。@aquinas,谢谢您的帮助(如果这些是初学者的问题!)@Blazemonger我想我只是在javascript变量上运行.hasClass变量时出错了。那是个聪明的把戏。您还可以执行
警报($(this)[0].outerHTML),但当然不是所有浏览器都支持outerHTML,您的技巧与旧浏览器更兼容。这很好。我是否可以将其作为变量,以便在if-else语句中使用它?var outerHTML=$('').append($(this.clone()).html();如果($(outerHTML).hasClass('ui-state-disabled'){do something}那么,是的
.html()
输出一个字符串,您可以将该字符串指定给变量,并根据需要使用。@aquinas,谢谢您的帮助(如果这些是初学者的问题!)@Blazemonger我想我只是在javascript变量上运行.hasClass变量时出错了。