jquery属性选择器[attribute=value]的问题

$("img").mouseenter(function (){

       var bigimgsrc = $(this).attr('src');
       var liindex = $(this).siblings("ul").children("[datasrc=bigimgsrc]").index();
       alert(liindex);
       });
       问题是:liindex一直是-1;
       那么我var liindex = $(this).siblings("ul").children("[datasrc=bigimgsrc]").index();这一句话是哪里出问题了呢?请指点一下。
阅读 3.6k
4 个回答
"[datasrc='" + bigimgsrc + "']"

我一般都习惯带对引号,还有开始没看清,变量你用拼接吧。

语法并没有错,检查一下是否拼写错误。
index()找不到元素情况下返回-1,所以children这里的选择器拼写是否有错误?

    <div>
        <img src="http://apeclass.cn/1212/img/photo_01.jpg">
        <ul>
            <li data-src="http://apeclass.cn/1212/img/photo_01.jpg"></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <div>
        <img src="http://apeclass.cn/1212/img/photo_02.jpg">
        <ul>
            <li></li>
            <li data-src="http://apeclass.cn/1212/img/photo_02.jpg"></li>
            <li></li>
        </ul>
    </div>
    <div>
        <img src="http://apeclass.cn/1212/img/photo_03.jpg">
        <ul>
            <li></li>
            <li></li>
            <li data-src="http://apeclass.cn/1212/img/photo_03.jpg"></li>
        </ul>
    </div>
    <script>
    $('img').mouseenter(function() {
        var bigimgsrc = $(this).attr('src'),
            liindex = $(this).siblings('ul').children("[data-src='" + bigimgsrc + "']").index()
        alert(liindex );
    });
    </script>

说明$(this).siblings("ul").children("[datasrc=bigimgsrc]")没有选取到任何元素。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进