2012-01-23 232 views
0

我有一個DIV與下面的屬性jQuery的兩個屬性(動態替換)

<div car_id='1' car_type='4'><br>GM<a href="#" id="yt0"><img title="Delete" src="/cardelete/images/delete.png" alt="Delete" /></a></div> 

基於刪除它基本上有兩個屬性

car_id='1' car_type='4' 

在我的Ajax成功功能我想刪除上述。我能夠提醒obj.car_idobj.car_type

但是,除去部分不能正常工作。有人能爲它提供正確的語法嗎?

"success"=>'js:function(data){                
    var obj = jQuery.parseJSON(data); 
    alert(obj.car_id); 
    alert(obj.car_type); 
    $("div[car_id=obj.car_id][car_type=obj.car_type)".remove();  

}」,

謝謝

問候

基蘭

回答

3

問題是你這樣做:至於JavaScript的

$("div[car_id=obj.car_id][car_type=obj.car_type)".remove();  

關心的是,這是一個單一的選擇器字符串。既然你要選擇的部件來填充的obj.car_idobj.car_type的價值,就需要使用字符串連接,像這樣:

function(data){                
    var obj = jQuery.parseJSON(data); 
    alert(obj.car_id); 
    alert(obj.car_type); 
    $('div[car_id="' + obj.car_id + '"][car_type="' + obj.car_type + '"]').remove(); 
} 
+0

謝謝。最初我嘗試追加,但遇到了一些其他的錯誤。您的解決方案幫助我找到了正確的解決方案。由於我已經在單引號(成功函數)中,在「單引號」之前添加'\'幫助了我。再次感謝 – Bujji

1

我很困惑在這裏的語法(什麼語言是這個in?爲什麼JS函數存儲爲一個字符串?),但有一些明顯的問題。首先,你沒有將變量插入到字符串中 - 你將它們的名字視爲字符串文字。第二個是你沒有正確關閉選擇器,如果你使用代碼高亮顯示,這是顯而易見的,這是不可能的,因爲函數被存儲爲一個字符串。

function(data){                
    var obj = jQuery.parseJSON(data); 
    alert(obj.car_id); 
    alert(obj.car_type); 
    $("div[car_id='" + obj.car_id + "'][car_type='" + obj.car_type + "'])".remove(); 
} 

還請注意,我已插入的報價爲attribute equals selector \[name="value"\],在技術上是必需的。

+0

這是YII框架 – Bujji

+0

@lonesomeday FYI,無論是技術上需要添加引號取決於屬性值(在這種情況下,這是未知的,所以它是絕對是一個好主意添加引號)。請參閱[選擇器(CSS和JavaScript)_中的_Unquoted屬性值](http://mathiasbynens.be/notes/unquoted-attribute-values#css)。 –

+0

@MathiasBynens從技術上說,它是jQuery所需要的,即使它傳遞給'qSA'。查看我鏈接到的API頁面。 – lonesomeday

2
$('div[car_id="'+obj.car_id+'"][car_type="'+obj.car_type+'")'.remove(); 
1

你需要逃避你的字符串使用對象的屬性(car_id和car_type),而不僅僅是字符串「obj.car_id」和「obj.car_type」。你也錯誤地關閉了屬性選擇器(缺少最後的']')和你的jQuery選擇器。

一個正確的解決辦法是:

$("div[car_id='" + obj.car_id + "'][car_type='" + obj.car_type + "']").remove();