我有这个:
<div class="people">
<a class="deleteUser"> x </a> <a class="userLink"> John Malkovich </a> ,
<a class="deleteUser"> x </a> <a class="userLink"> Adrian Mutu </a>
</div>
点击“deleteUser”链接,我希望能够:
- 隐藏相同的链接
- 删除相对“userLink”链接
- 并且只有在“userLink”链接修剪后才有任何昏迷(这是我需要帮助的地方!)
如果在元素内容之后出现昏迷,我如何检查jquery?
感谢
卢卡
答案 0 :(得分:3)
试试这个:
$(".deleteUser").click(function() {
var index = ($(this).index()+1)/2;
$(".people").contents().filter(function() {
return this.nodeType == 3 && $.trim($(this).text()) == ",";
}).eq(index).remove();
$(this).next(".userLink").remove().end().remove();
});
请参阅jsFiddle
答案 1 :(得分:1)
根据您的原始标记,您可以使用.contents()
和.filter()
查找最后一个,
小更新,用于解决中间逗号问题并删除逗号。
$(".deleteUser").click(function() {
var a = $(this).index()/2;
$(this).next(".userLink").remove().end().remove();
$(".people").contents().filter(function() {
return this.nodeType == 3 && $.trim($(this).text()) == ",";
}).eq(a - 1).remove();
});
注意:如果您可以调整标记以将元素包装在另一个元素中,这将更容易实现。
jsfiddle上的代码示例。
答案 2 :(得分:0)
我会将两个<a>
标记放在容器中:
<div class="people">
<div class='person' id='person1_container'><a class="deleteUser"> x </a> <a class="userLink">John Malkovich</a>,</div>
<div class='person' id='person1_container'><a class="deleteUser"> x </a> <a class="userLink"> Adrian Mutu </a></div>
</div>
然后你可以隐藏整个容器:
<div class="people">
<div class='person' id='person1_container'><a class="deleteUser" onclick="document.getElementById('person1_container').style.display = 'none';"> x </a> <a class="userLink">John Malkovich</a>,</div>
<div class='person' id='person2_container'><a class="deleteUser" onclick="document.getElementById('person2_container').style.display = 'none';"> x </a> <a class="userLink"> Adrian Mutu </a></div>
</div>
答案 3 :(得分:0)
我会重组您的数据:
<div class="people">
<div class="user"><a class="delete"> x </a> John Malkovitch,</div>
<div class="user"><a class="delete"> x </a> Adrian Mutu</div>
</div>
然后你可以使用一些代码来删除整个div.user:
$('div.people div.user a.delete').click(function(evt) {
$(evt.target).closest('div.user').hide();
});