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);
}
});