Israelis stopped two school buses near the illegal Yizhar settlement, south of Nablus, and hurled stones at the vehicles, said Ghassan Daghlas, a Palestinian Authority official who monitors settlement activity in the northern West Bank.
The attack left more than 20 students injured and caused widespread panic, he added.
Masked settlers burned tires at road junctions in Nablus and hurled stones at Palestinian cars.
Meanwhile, settlers set fire to dozens of olive trees in the Nablus villages of Asira al-Qibliya and Urif, and attacked vehicles east of Tulkarem.
Tensions are high in the northern West Bank following a stabbing attack which killed a settler earlier in the day near Zatara checkpoint in Nablus.