The correct answer is B. ionic bonds and hydrogen bonds.
Ionic bonds form when atoms transfer electrons, resulting in positively and negatively charged ions that attract each other due to their opposite charges. Hydrogen bonds, while generally weaker than ionic bonds, also involve attractions between molecules with opposite charges, such as between hydrogen and electronegative atoms like oxygen or nitrogen.
Covalent bonds involve the sharing of electrons rather than charge attraction, and while metallic bonds involve a sea of electrons, they are not primarily based on the attraction between opposite charges.