调试jQuery选择器的返回值

Fab*_*ian 6 debugging jquery

我正在寻找一种方法来调试jquery选择器返回的内容.我尝试过使用toString(),但这只会回来[object Object].

我实际上要做的是将回调附加到单选按钮.和onclick 按钮中的一个,我要提交的封闭形式.

因此我尝试做这样的事情:

$(".rating").stars({
    cancelShow: false,
    callback: function(ui, type, value, event) {
        $(this).closest('form').ajaxSubmit();
    }
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有任何事

这是我想要做的完整示例:

<script type="text/javascript" src="http://localhost:8000/media/js/jquery.js?v=1.4.2"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/jquery.form.js?v=2.4.3"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/jquery-ui.custom.min.js?v=1.8"></script>
<script type="text/javascript" language="javascript" src="http://localhost:8000/media/js/jquery.ui.stars.js?v=3.0.0b38"></script>
<link rel="stylesheet" type="text/css" media="all" href="http://localhost:8000/media/css/jquery.ui.stars.css?v=3.0.0b38" />        

<body>
 <script type="text/javascript">
    $(function() {
        $(".rating").children().not(":radio").hide();
        $(".rating").stars({
            cancelShow: false,
            callback: function(ui, type, value, event) {
                alert('NodeName: ' + this.nodeName);
                $(this).each(function() {
                    alert($(this).html());
                });

                alert($(this).length);
            }
        });
    });
 </script>

 <ul class="list">
  <li>
   <form class="rating" id="rating-1" action="/sniphunter/rate/1/" method="post">
    <input type="radio" name="score" value="1" id="rating-1-1" />
    <input type="radio" name="score" value="2" id="rating-1-2" />
    <input type="radio" name="score" value="3" id="rating-1-3" />
    <input type="radio" name="score" value="4" id="rating-1-4" />
    <input type="radio" name="score" value="5" id="rating-1-5" />
    <input type="submit" value="Rate"/>
   </form>
  </li>
 </ul>
</body>
Run Code Online (Sandbox Code Playgroud)

Mot*_*tie 2

我下载了星级小部件(它看起来与您正在使用的相同)并进行了一些挖掘...星星插件完全删除了单选按钮并用 div 和链接替换了它们。当您选择一颗星时,它会将值保存在表单内的隐藏输入中。

因此,在搞乱之后,我发现您可以使用 进入表单ui.$form,所以试试这个:

$(function(){
    $(".rating").children().not(":radio").hide();
    $(".rating").stars({
        cancelShow: false,
        callback: function(ui, type, value, event)
        {
            alert( ui.$form.attr('id') );  // alerts the form ID
            ui.$form.ajaxSubmit();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

编辑:哦,如果您想访问原始的单选按钮,它们也会保存到 ui 对象中以及ui.$rboxs. 以下代码片段将提醒原始单选按钮的 ID:

$(function(){
    $(".rating").children().not(":radio").hide();
    $(".rating").stars({
        cancelShow: false,
        callback: function(ui, type, value, event)
        {
            alert( ui.$rboxs[(value-1)].id );
        }
    });
});
Run Code Online (Sandbox Code Playgroud)