我想將單選按鈕的屬性分配給複選框,例如,如果我更改單選按鈕的值,則應該對複選框產生相同的影響。下面是代碼我有什麼如何將單選按鈕的屬性分配給複選框
$(this).children('TD').find('input:radio').change(function()
{
$(this).parents('TD').find('input:checkbox').prop(?)
});
高興有人能幫助我
我想將單選按鈕的屬性分配給複選框,例如,如果我更改單選按鈕的值,則應該對複選框產生相同的影響。下面是代碼我有什麼如何將單選按鈕的屬性分配給複選框
$(this).children('TD').find('input:radio').change(function()
{
$(this).parents('TD').find('input:checkbox').prop(?)
});
高興有人能幫助我
只需使用prop
值this
:
$(this).children('TD').find('input:radio').change(function()
{
$(this).parents('TD').find('input:checkbox').prop('checked',this.checked)
});
注意它當您選擇關閉單選按鈕時不會取消選中該框,因爲它不會調用舊按鈕上的change
事件。
如果你從字面上的意思是值,如value
屬性,那麼您可以分配給該元素自身的value
財產或使用jQuery通過val()
做到這一點。
但我相信你實際上指的是選中狀態,而不是價值,在這種情況下,您可以直接分配給該元素的checked
財產,或使用attr()
。
例子:
如果您知道的複選框會在那裏,只是直接將其checked
屬性:
$(this).children('TD').find('input:radio').change(function()
{
$(this).parents('TD').find('input:checkbox')[0]. checked = this.checked;
// note this ---^^^ We're looking at the raw element
});
或者,如果你喜歡做「jQuery的」方式或有任何可能性複選框不會在那裏,就像這樣:
$(this).children('TD').find('input:radio').change(function()
{
$(this).parents('TD').find('input:checkbox').attr("checked", this.checked);
});
使用attr
設置checked狀態在jQuery 1.5.x和更高版本以及jQuery 1.6.1和更高版本中工作;在1.6.1或更高版本中,您可以使用prop
。大約兩週(jQuery 1.6.0),你會有有使用新的prop
功能,但他們重新考慮這一點。 :-)
*「只需使用'this'的'prop'值:」*僅限於jQuery 1.6.0或更高版本。在1.5.x和更早版本中,它是'attr'。而'$(this).prop('checked')'是編寫'this.checked'的一種非常冗長的方式。 ;-) –
@ T.J。 Crowder當他在他的問題中使用'prop'時,我會假定他正在使用實際上支持它的jQuery版本。至於直接使用'node.checked',是的,它肯定會更快,但是你可能想要確保元素確實存在,否則當修改DOM元素時可能會或可能會出現錯誤不存在。如果你願意像他一樣在一個問題中遍歷DOM,同時確保他使用的元素實際存在,那麼爲什麼不呢。編輯,對不起遺漏了你的答案的一半,只適用於你的答案的第一位。 – Niklas