Javascript JS/JQuery:I';我正在尝试将li节点移动到它匹配的节点下

Javascript JS/JQuery:I';我正在尝试将li节点移动到它匹配的节点下,javascript,jquery,Javascript,Jquery,如果d匹配b,我将尝试将d(从li节点开始)移动到b匹配的id下的右侧。我想不出来 样本: $(document).ready(function() { var a = $("li.comment").attr("id"); var b = $("li.comment[id='"+a+"']"); var c = $("li.comment > div.comment-body div > p > a").attr("href"); var d = $("li.comment

如果
d
匹配
b
,我将尝试将
d
(从
li
节点开始)移动到
b
匹配的id下的右侧。我想不出来

样本:

$(document).ready(function() {
var a = $("li.comment").attr("id");
var b = $("li.comment[id='"+a+"']");
var c = $("li.comment > div.comment-body div > p > a").attr("href");
var d = $("li.comment > div.comment-body div > p > a[href='"+c+"']");
var e = new RegExp("[#+'+b+']b")

if (d===e) {
  d.parent().append(a);};
};)
  • 有什么评论吗

  • 瓦卡托


  • 我正试图在JSFIDLE上解决这个问题,但我无法完成。当它显示正确时,带有链接的
    li
    应该在第一个下移动

    您无法比较选择器和字符串

    你能做的是:

    <li id="wow" class="comment">
    <div class="comment-body">
    <div>
    <p>Any comments?</p>
    </div>
    </div>
    </li>
    <li id="rebble" class="comment"><div class="comment-body"><div><p>Wakatow</p></div></div></li>
    <li class="comment" id="det">
    <div class="comment-body">
    <div>
    <p>
    <a href="#wow">Yeah! Hold on a sec...</a>
    </p>
    </div>
    </div>
    </li>
    

    你能比较字符串吗

    var e = b.attr('id');
    
    if ("#" + d.attr('id')===e) {
      d.parents().insertAfter(a);
    };
    

    你能发布一些html示例吗?你正在用一个#作为jquery对象的前缀,因此由于类型强制,它被转换为一个字符串,因此你正在比较一个jquery对象(d)和一个字符串(e),这两个字符串永远不会互相===。@SérgioMichels我刚刚更新了它。
    href
    的开头有一个#。如果有的话,我想将
    b
    d
    的最后几个字符进行匹配。让我们说id='wow'和href='wow'。我正在尝试将
    id
    href
    ok的结尾匹配。我已经编辑了我的答案。但是Sérgio的答案更为完整,JSFIDLE似乎按照您的意愿工作:)我如何循环这个?我想不出来。如果使用更多注释尝试此操作,则除非其他注释回复第一个注释,否则它将不起作用。假设类“comment”有多个li:$('li.comment').each(function(){alert($(this.attr('id')))});这并不是全部代码;我只是用它作为例子,但它奏效了。哦!如果不使用
    li.comment>div.comment-body
    ,我如何使用
    this
    ?我尝试了
    $(这个“>div.comment-body”)
    ,但不起作用。
    $(document).ready(function() {
      var a = $("li.comment").attr("id");
      var b = $("li.comment[id='"+a+"']");
      var c = $("li.comment > div.comment-body div > p > a").attr("href");
      if( '#'+a == c ){
        var d = $("li.comment > div.comment-body div > p > a[href='"+c+"']");        
        d.parent().append(a);
      }
    });