Ответ 1
попробуйте
console.log($("#"+d));
ваше решение передает двойные кавычки как часть строки.
console.log($('"#'+d+'"'));
в html у меня есть
<div id="2013-10-23">
<h1>5</h1>
<p>eeeeeeeeeeee</p>
</div>
Он выдает ошибку:
Неподготовленная ошибка: ошибка синтаксиса, нераспознанное выражение: "# 2013-10-23"
В приведенном выше коде у меня есть один div с id="2013-10-23"
, и при получении этого id в ответ он бросает синтаксическую ошибку
попробуйте
console.log($("#"+d));
ваше решение передает двойные кавычки как часть строки.
console.log( $('#'+d) ); // single quotes only
console.log( $("#"+d) ); // double quotes only
Ваш селектор будет выглядеть следующим образом, который переполняется кавычками:
$('"#abc"') // -> it'll try to find <div id='"#abc"'>
// In css, this would be the equivalent:
"#abc"{ /* Wrong */ } // instead of:
#abc{ /* Right */ }
Попробуйте использовать:
console.log($("#"+d));
Это приведет к удалению дополнительных кавычек, которые вы использовали.
Это также может произойти в сафари, если вы попробуете селектор с отсутствующим], например
$('select[name="something"')
но интересно, этот же селектор jquery с отсутствующей скобкой будет работать в хроме.
Попробуйте console.log($("#" + d));
Если вы используете jQuery 2.1.4 или выше, попробуйте следующее:
$("#" + this.d);
Или вы можете определить var перед его использованием. Это делает ваш код более простым.
var d = this.d
$("#" + d);