2013-11-27 172 views
-5

我希望能夠簡化渲染此操作所需的jQuery編碼。我想要一組4個鏈接,其中一個鏈接基於其所在的相應頁面被隱藏。因此,如果我在第1頁上,我想要隱藏鏈接1並保持鏈接2,3和4可見。jQuery - 簡化代碼

http://jsfiddle.net/chapster82/k43a8/

感謝您的幫助。 HTML CSS

.links { 
    height: 50px; 
    width: 50px; 
    float: left; 
} 
.linkcontroller { 
    height: 100px; 
    width: 100px; 
} 

jQuery的寫,而不是

<div class="links" id="div1">A</div> 
<div class="links" id="div2">B</div> 
<div class="links" id="div3">C</div> 
<div class="links" id="div4">D</div> 

<div class="linkcontroller" divId="div1"></div> 

if($('.linkcontroller').length){ 
    var divId= $(this).attr("divId"); 
$("#" + divId).hide(); 
} 
+0

你現在有什麼問題? – Joren

回答

1
$('#'+$('.linkcontroller').attr('divId')).hide() 

寫在一行可能會導致一些人質疑,如果它是'簡化'。

不需要開始if - 如果linkcontroller不存在,您只需隱藏任何內容。

+0

這是最好的答案。是的,你是正確的說這不是簡化。我的思維方法是錯誤的。 – user2004710

1

$('.linkcontroller')$(this)

嘗試:

if($('.linkcontroller').length> 0){ 
    var divId= $('.linkcontroller').attr("divId"); 
    $("#" + divId).hide(); 
} 

Updated fiddle here.

+0

做到了。非常感謝你。我是jquery的新手,所以我還在學習。驚人的所有反對票大聲笑。 – user2004710

+0

@ user2004710歡迎您:) – Hiral

1
if($('.linkcontroller').length) $("#" + $(".linkcontroller").attr("divId")).hide(); 

簡化成1線!