回答

byになるのはなぜですか、withはなぜダメですか? → 熟語表現のby mistake(間違えて)で、with mistakeは存在しない表現だからです。
文の意味:自分の傘に似ていたために、ジョンは誰かの傘を持っていった。

参考にしてください。

taka

訂正:ジョンは誰かの傘を持っていった。→ ジョンは間違えて誰かの傘を持っていった。

この回答にコメントする
疑問は解決しましたか?