2017-06-23 99 views
-1

我正在嘗試爲顯示的正確圖標顯示相應的輸入。我將所有元素組織爲一個對象,並創建了匹配匹配圖標ID的密鑰。然後,我將該元素創建到適當的輸入以匹配。當單擊元素的ID等於對象元素時輸出元素

我的問題是,當我點擊圖標時,沒有輸出。我沒有收到任何錯誤,我的console.log向我展示了循環結果。

有沒有人看到我做錯了什麼?如果您單擊藍色的Zillow圖標,則應顯示帶有佔位符「Zillow」的輸入。與房地產經紀人一樣,除了與房地產經紀人輸入/圖標相關。

var reviewInputs = { 
 
    "zillow-review": '<input type="url" id="zillow-input" placeholder="Zillow">', 
 
    "realtor-review": '<input type="url" id="realtor-input" placeholder="Realtor">' 
 
}; 
 

 
$('.review-icon-select').click(function() { 
 
    $('#review-site-edit-wrap').addClass('active'); 
 
    var reviewIconClicked = $(this).attr('id'); 
 

 
    $.each(reviewInputs, function(key, element) { 
 
    console.log('key: ' + key + '\n' + 'value: ' + element); 
 
    if (reviewIconClicked == reviewInputs) { 
 
     reviewInputs.forEach(function(site) { 
 
     $('#review-site-edit').append.reviewInputs[element]; 
 
     }); 
 
    } 
 
    }); 
 

 
    //$(reviewIconClicked':contains("SomeText")').each(function() { 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<li class="review-icon-select" id="zillow-review"><img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow"></li> 
 
<li class="review-icon-select" id="realtor-review"><img src="https://s3.amazonaws.com/retain-static/www/realtor.com.png" alt="Realtor.com"></li> 
 
<div id="review-site-edit"></div>

回答

1

你只需要檢查,如果點擊的元素的ID是你對象的屬性。

無需循環。

var reviewInputs = { 
 
    "zillow-review": '<input type="url" id="zillow-input" placeholder="Zillow">', 
 
    "realtor-review": '<input type="url" id="realtor-input" placeholder="Realtor">' 
 
}; 
 

 
$('.review-icon-select').click(function() { 
 
    //$('#review-site-edit-wrap').addClass('active'); // Maybe used... 
 
    var reviewIconClicked = $(this).attr('id'); 
 
    
 
    if(reviewInputs.hasOwnProperty(reviewIconClicked)){ 
 
    $('#review-site-edit').find("input[type='url']").remove(); 
 
    $('#review-site-edit').append(reviewInputs[reviewIconClicked]); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<li class="review-icon-select" id="zillow-review"><img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow"></li> 
 
<li class="review-icon-select" id="realtor-review"><img src="https://s3.amazonaws.com/retain-static/www/realtor.com.png" alt="Realtor.com"></li> 
 
<div id="review-site-edit"></div>

+0

它不是做相同的片段? –

+0

*「添加到DOM»*是什麼意思? –

+0

難道你只需要一個輸入...所以以前應該被刪除? –

-1

而不是使用

if (reviewIconClicked == reviewInputs) { 

的嘗試

reviewInputs['reviewIconClicked']