Eight people were injured in the incident Friday evening, the Palestinian Ma'an News Agency reported. The bus was traveling on the main road between Ramallah and Nablus.
The Israeli military confirmed it had responded to reports of the violence. A spokeswoman said soldiers set up checkpoints.
Ghassan Dhaglas, an official with the Palestinian Authority, said the road was closed for two hours.
Ayub Swaied, mayor of Sinjil, a village outside Ramallah, said settlers wrote anti-Palestinian slogans on walls Wednesday night. Those included "Palestinians should die" and "Stay away from our lands."
The mayor said an improvised explosive device left under a car was discovered before it went off.