I believe you are very close here you just need to save the changes (so to speak).
I think this will get it for you.
[System.Reflection.Assembly]::LoadWithPartialName(’Microsoft.SqlServer.SMO’) | Out-Null
$smo = New-Object (’Microsoft.SqlServer.Management.Smo.Server’) "Server\Instance"
$jobstodisable= get-content C:\jobstodisablefile.txt
for($i=0; $i -lt $jobstodisable.count; $i++)
{
$job= $smo.Jobserver.jobs | where-object {$_.name -eq $jobstodisable[$i]}
$job.isenabled = 0
$job.Alter()
}