2015-12-01 171 views
2

首先,對於標題感到抱歉,我知道這不是很具體,但我真的很難說還有什麼要說的。如何使用jQuery選擇具有相似屬性的元素?

所以之前我嘗試在我的問題是什麼羅嗦了,你不妨看看這個的jsfiddle我做: http://jsfiddle.net/ax1ncdmu/2

它是如何工作在這個小提琴正是我希望的方式工作,但正如你所看到的,jQuery是這樣的:

$(document).ready(function() { 
    $("input[name=guest0]").click(function() { 
    $('#guest0').toggle(); 
    }); 
    $("input[name=guest1]").click(function() { 
    $('#guest1').toggle(); 
    }); 
    $("input[name=guest2]").click(function() { 
    $('#guest2').toggle(); 
    }); 
}); 

但似乎很草率寫出這樣的代碼,只是在重複同樣的事情一遍又一遍。我覺得這應該是顯而易見的,但之前我沒有使用jQuery,所以我很難找出它。

有沒有辦法找出被點擊的複選框的「名稱」,然後使用該字符串插入代碼?或者這是錯誤的方式呢?

回答

8

您可以使用jQueries attribute-starts-with-selector

$(document).ready(function() { 
    // all inputs that its name starts with "guest" 
    $("input[name^=guest]").click(function() { 
    // read the name and apply to id 
    $('#'+$(this).attr('name')).toggle(); 
    }); 
}); 

看到它的工作:

http://jsfiddle.net/ax1ncdmu/7/

+3

'$(本).attr( '名')'可以用'this.name取代' –

+0

是的,但我經常使用jQuery,因爲它使兼容性變得簡單。在這種情況下,沒有問題,但在瀏覽器在屬性中運行不同的情況下,jQuery避免爲不同的瀏覽器編寫不同的代碼,並且它不會打擾;) –

+1

非常感謝您在評論中添加註釋以及:) – chilliconcode

相關問題