javascript
  • jquery
  • 2011-12-22 68 views 1 likes 
    1

    如果我有以下代碼,並且用戶要單擊刪除按鈕,請使用jQuery,我將如何獲取組的名稱(Test Group in the下面的例子)?如果有人想知道,那是因爲我想顯示一個確認框,其中包含將要刪除的組的名稱。單擊鏈接時獲取TD字段的值

    <td class='title column-title'>Test Group 
        <div class="row-actions"> 
         <span class='delete'> 
          <a id="single-delete" href="?page=permissions-options-eidtor&action=delete&action_role=test_group&role=&paged=2&message=3">Delete</a> 
         </span> 
        </div> 
    </td> 
    

    回答

    3
    $('#single-delete').click(function() { 
        $(this).parents('.column-title').text(); 
    }); 
    
    +1

    謝謝 - 將我的文本封裝在'

    3

    嘗試類似這樣;

    $(document).ready(function() { 
    
        $('#single-delete').click(function() { 
        $(this).closest('.column-title').text(""); // UPDATE: Won´t work as text() returns all inner text. 
        }); 
    
    }); 
    

    UPDATE

    您的鏈接#single-delete應該有一個類,但你也可以使用選擇.delete a,這將是很好的包裹與span這樣<span class="label">Test group</span>或simular文本。

    更新2

    $('.delete a').click(function(e) { 
    
        var group = $(this).closest('.column-title').find('.label').first().text(); 
        return confirm('Are you sure you want to delete the group "' + group + '"?'); 
    
    }); 
    
    +0

    作爲一個規則,如果你的代碼中,需要一段文字,將它放在某種HTML元素中是一個好主意,以便不管其他控件如何被提取出來。 – 2011-12-22 10:29:13

    +0

    謝謝你們 - 這有點過分了,文字現在用'

    1

    如果這是一個動態鏈接,我建議將自定義屬性添加到您的一個元素:

    <td class='title column-title'>Test Group 
        <div class="row-actions"> 
         <span class='delete'> 
          <a id="single-delete" actionrole="test_group" href="...">Delete</a> 
         </span> 
        </div> 
    </td> 
    

    在你確認,你可以使用:

    var text = 'Delete group ' + $('#single-delete').attr('actionrole') + '?'; 
    var result = confirm(text); 
    

    如果這不行,你可以提取href a你的鏈接的屬性,然後用正則表達式提取參數。

    更新

    this example on jsFiddle

    +0

    我應該更好地閱讀這些問題..我看到的唯一一個「測試集合」就是在你的href屬性上:/我認爲我的答案對你不起作用 – Grrbrr404 2011-12-22 10:21:54

    +1

    它可以工作 - 鏈接是由「foreach」循環產生的,所以我couild添加您的自定義屬性下的組的名稱。但是,通過這裏的幫助,我現在可以按照需要進行工作。謝謝。 – 2011-12-22 11:06:52

    1

    匹配的<td>祖先並獲得其內部預期text()將無法​​正常工作,因爲返回的值也將包含所有後代的內文元素,包括鏈接的。

    可以解決,通過使用contents()filter()隔離<td>元素的文本節點孩子,然後用map()join()串連他們的價值觀:

    $(".delete a").click(function() { 
        var group = $(this).closest(".column-title").contents().filter(function() { 
         return this.nodeType == 3; 
        }).map(function() { 
         return this.nodeValue; 
        }).get().join(""); 
    
        // Now do something with 'group'... 
    }); 
    
    0

    我不知道什麼叫'刪除組在它的,但我可以告訴你怎麼跟蹤‘test_group’參數即‘action_role’與下面的代碼:

    <script type="text/javascript"> 
    $(document).ready(function(){ 
        $('#single-delete').click(function() { 
        console.log($(this).attr("href").split('&')[2].split('=')[1]); 
        }); 
    }); 
    </script> 
    
    相關問題