Polynomial generator required to detect single bit error in Cyclic Redundancy Check codes
You just need to concentrate on the polynomial division here. First consider the case where we need to detect one - bit error . For this case 

$ e(x) = x^k $

we can choose any polynomial with terms >=2 , since it will not divide the error polynomial completely . 

Next let us see the case of odd number of errors. Notice how this is different from one bit error. This is a burst error. Consider the polynomial

$ g(x) = (x+1) $

If we multiply this polynomial with any other polynomial the number of terms we get as a result is always even. This result in general is true you can try this for assurance.  

Consider any error polynomial with odd number of errors . This polynomial will have odd number of terms in the polynomial. example :

$e(X) = x^3 + x^2 + x $

Now  

$\nexists p(x)   \quad  such\quad that \quad  p(x) * g(x) = e(x) $

In other words no polynomial could be fund which gives odd number of terms when multiplied by x+1 . This observation suggests x+1 should be a factor of our generator function in order to catch odd- number of errors. As 1 - bit error is an odd-bit error x+1 also detects one - bit errors. Both books are correct in their reasoning.