jQuery:选择一个

  • 内的标签
  • 发布于 2024-11-27 10:09:28 字数 466 浏览 1 评论 0原文

    当选择删除按钮时,我尝试使用 jquery 淡出

  • 中的

    标记。

  • <ul>
        <li>
            <p>Here is some text!</p>
            <span class="delete">Delete</span>
        <li>
    <ul>
    

    到目前为止,这是我的 jQuery:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $("p").fadeOut(); 
    });
    

    I'm trying to use jquery to fade out a <p> tag within a <li> when a delete button is selected.

    <ul>
        <li>
            <p>Here is some text!</p>
            <span class="delete">Delete</span>
        <li>
    <ul>
    

    Here is my jQuery so far:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $("p").fadeOut(); 
    });
    

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(2

    高冷爸爸 2024-12-04 10:09:29

    使用引用的结构,简单地说:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).prev("p").fadeOut(); 
    });
    

    如果 p 可能不是删除链接的直接前身,那么您可以这样做:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").fadeOut(); 
    });
    

    ...这将淡出它在 li 中找到的所有 p 元素,或者这样:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").first().fadeOut(); 
    });
    

    ...这将淡出第一个 它在 li 中找到的 p 元素,或者this:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).prevAll("p").first().fadeOut(); 
    });
    

    ...这将淡出它发现的从删除链接向后工作的第一个同级。

    参考文献:

    • prev - 查找紧邻上一个同级,或者如果与选择器不匹配则什么也不
    • closest - 查找 匹配的最近祖先
    • 与选择器find - 查找与选择器匹配的所有后代
    • prevAll - 以相反的文档顺序查找与选择器匹配的所有先前同级元素(例如,从当前元素向后工作)
    • <一href="http://api.jquery.com/first/" rel="nofollow">first - 只抓取当前集合中的第一个元素

    With your structure as quoted, simply:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).prev("p").fadeOut(); 
    });
    

    If it's possible the p won't be the immediate predecessor to the delete link, then you can do this:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").fadeOut(); 
    });
    

    ...which will fade out all p elements it finds in the li, or this:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").first().fadeOut(); 
    });
    

    ...which will fade out the first p element it finds in the li, or this:

    $(".delete").click(function(){
        //Needs to select the <p> tag within the same <li> 
        $(this).prevAll("p").first().fadeOut(); 
    });
    

    ...which will fade out the first sibling it finds working backward from the delete link.

    References:

    • prev - find the immediate previous sibling, or nothing if it doesn't match the selector
    • closest - find the nearest ancestor matching a selector
    • find - find all descendants matching a selector
    • prevAll - find all previous siblings matching a selector, in reverse document order (e.g., working backward from the current element)
    • first - only grab the first element in the current set
    段念尘 2024-12-04 10:09:29
    $(".delete").click(function () {
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").fadeOut(); 
    });
    

    ...或者您使用 parent() 而不是 closest()

    如果

    始终 位于 之前,您还可以执行以下操作:

    $(".delete").click(function () {
        //Needs to select the <p> tag within the same <li> 
        $(this).prev("p").fadeOut(); 
    });
    
    $(".delete").click(function () {
        //Needs to select the <p> tag within the same <li> 
        $(this).closest("li").find("p").fadeOut(); 
    });
    

    …or you use parent() instead of closest().

    If the <p> always precedes the <span>, you can also do:

    $(".delete").click(function () {
        //Needs to select the <p> tag within the same <li> 
        $(this).prev("p").fadeOut(); 
    });
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文