语法错误,无法识别的表情: '.D img.displayImage'
这是我的HTML:语法错误,无法识别的表情: '.D img.displayImage'
<div class="flex-item a">
<p>A</p>
<img class="displayImage" src="img/image-placeholder.svg" />
<textarea class="textInput"></textarea>
</div>
<div class="flex-item b">
<p>B</p>
<img class="displayImage" src="img/image-placeholder.svg" />
<textarea class="textInput"></textarea>
</div>
<div class="flex-item c">
<p>C</p>
<img class="displayImage" src="img/image-placeholder.svg" />
<textarea class="textInput"></textarea>
</div>
<div class="flex-item d">
<p>D</p>
<img class="displayImage" src="img/image-placeholder.svg" />
<textarea class="textInput"></textarea>
</div>
这是我的JS:
var arr = ["a", "b", "c", "d"];
var imageAreaArray = [];
$.each(arr, function(i, val){
imageAreaArray.push("document.querySelector('." + val + " img.displayImage')");
});
$.each(imageAreaArray, function(i, val){
var contentVal = $("'." + arr[i] + "img.displayImage'").closest('textarea');
imagePath = $("'." + arr[i] + " img.displayImage'").src;
});
这应该采取就近<textarea>
的价值在所选的'<div>
'中的img.displayImage
,并且还采用img.displayImage
的src
,但出现以下错误,我不确定如何解决。
Uncaught Error: Syntax error, unrecognized expression: '.d img.displayImage'
UPDATE
不再收到错误消息,但现在contentVal
和imagePath
被显示为未定义。任何想法为什么undefined可能会显示?
你有jQuery选择额外的单引号,这是取值为无效选择像$("'.a .. ..'")
$.each(imageAreaArray, function(i, val){
var contentVal = $("'." + arr[i] + "img.displayImage'").closest('textarea');
// ^^
imagePath = $("'." + arr[i] + " img.displayImage'").src;
// ^^
});
- 此外
$(..).src
将输出不确定。请使用$(..)[0].src
或$(..).prop('src')
来获取源代码。 -
.closest('..')
返回最接近的父元素。<textarea>
这里是img
的兄弟姐妹。使用.next('textarea')
而不是.closest()
我看到了代码中的两个潜在问题。首先,我不相信jQuery选择器需要用单引号包装,所以摆脱这些。其次,当查询最近的textarea时,你错过了arr [i]和img.displayImage之间的空格。
我建议缓存的jQuery选定的元素:
var element = $(`.${arr[i]} img.displayImage`);
var contentVal = element.closest('textarea');
imagePath = element.src;
注意,`字符是backticks
,通常在发现左上角英语键盘。此语法要求您定位的浏览器支持ES6字符串插值。作为替代,您可以使用您当前使用的相同方法构建选择器。
var element = $("'." + arr[i] + " img.displayImage'");
...
谢谢@jjbandit。该错误不再显示,但'var element'显示为未定义。有任何想法为什么这可能会发生? –
没有代码示例我很不确定。 – jjbandit
你能解释一下你准备做什么,因为我可以保证你有更好的办法。 –
我不知道我是否可以调用这种意大利面代码,但它是某种意大利面,并不是一种好的方法。 –
@RoryMcCrossan:我试图将图像和文本上传到API,但现在我不再获取