无法在JQuery $ .each循环中获取position()

我正在尝试使用html5(contenteditable =“true”)和jquery来创建一个可编辑框(一种richTextBox)。我需要找出每个元素在可编辑div内的位置,以便我可以插入像微软这样的分页符。 这是页面



<head>
    <title>jQuery Context Menu Plugin Demo</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

    <script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script>


    <script type="text/javascript"> 
        $(document).ready( function() {
            $("#divEdit").keyup(function(){
                $.each($("#divEdit").find("*"), function(i,item){
                    alert(item.position());
                });
            });             
        });
    </script>
</head>

<body>

    

jQuery Context Menu Plugin and KendoUI Demo

    <div style="width:740px;height:440px" contenteditable="true" id = "divEdit">
        
Editor for ASP.NET MVC logo
Kendo UI Editor allows your users to edit HTML in a familiar, user-friendly way.
In this version, the Editor provides the core HTML editing engine, which includes basic text formatting, hyperlinks, lists, and image handling. The widget outputs identical HTML across all major browsers, follows accessibility standards and provides API for content manipulation.
Features include:
  • Text formatting & alignment
  • Bulleted and numbered lists
  • Hyperlink and image dialogs
  • Cross-browser support
  • Identical HTML output across browsers
  • Gracefully degrades to a textarea when JavaScript is turned off
        
Read more details or send us your feedback! </div> </body>

问题是alert(item.position())没有获取任何东西。 firefox开发人员工具栏中出现的错误是'item.position不是函数'。 我的猜测是它必须对$(“#divEdit”)。find(“*”)中的每个元素的类型进行操作,因为所有元素都是不同的。 任何帮助,将不胜感激。 谢谢

0
额外 编辑
意见: 1

2 答案

您需要从 item 中获取 jQuery 对象,因为 position()jQuery 方法,因此抱怨 position()不是一个函数

$(item).position()//instead of item.position()

或者更简洁:

$.each($("#divEdit").find("*"), function(i,item){
   alert(item.position());
}

改成

$('#divEdit').find('*').each(function() { 
   alert($(this).position());
})
0
额外
多谢你们。这工作。需要让我的JQuery基础权利..:P
额外 作者 pickhunter,
好吧,你无论如何回答布鲁夫:P在我之前,所以在这里你去我试图做的演示: jsfiddle.net/ jJRJT/3 可能会有所帮助!
额外 作者 Tats_innit,

改变这一行

警报(item.position());

警报($(项目).POSITION());

0
额外