javascript - 用 'e' Jquery 连接字符串
问题描述
我无法将字符串与“和”连接起来。
我想向 Jquery 发送一个命令,单击一个具有我作为参数传递的标题的 div。
需要获取这个才能在 jquery 函数中执行:
jQuery('div[title=\"titletoclick\"]').trigger( 'click' );
我有这个功能:
function clickOnMarker() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
let spotNameOriginal = urlParams.get('markerName');
let spotName = spotNameOriginal.slice(1,-1);
let elementToClick = "'div[title=\'" + spotName + "'\]'"
jQuery(elementToClick).trigger( 'click' );
}
执行函数时出现错误,因为变量的值是
'div [title =' Sintra Spot ']'
我需要将“”放在标题中,而不是“”并删除空格 TRIM()。
最好的问候和感谢
解决方案
让我们一次解决一个问题。
可以通过调用来实现对字符串的修剪String.prototype.trim
,所以我们将有
[...]
let spotName = spotNameOriginal.slice(1,-1);
// Added trim here
spotName = spotName.trim();
[...]
其次,我们处理报价。由于您要查找的字符串格式为
'div[title="<string here>"]'
,因此我们可以使用给定的引号...并根据需要对其进行转义。请记住,要在单引号括起来的字符串中转义单引号,我们必须在它们前面加上一个斜杠,而双引号不需要转义;相反的情况适用于双引号括起来的字符串。
因此我们可以写
// let elementToClick = "'div[title=\'" + spotName + "'\]'" OLD SYNTAX
let elementToClick = "'div[title=\"" + spotName + "\"]'";
让我添加一些东西......这种字符串对于 jQuery 选择器匹配没有用处。正确的不会有封闭的单引号......
因此,正确的语法应该是
// We can use the single quote as delimiter to simplify
let elementToClick = 'div[title="' + spotName + '"]';
(我们也可以通过使用反引号来使用模板字符串,但让我们保持简单)。
加入一切,我们有
function clickOnMarker() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
let spotNameOriginal = urlParams.get('markerName');
// Add trim... Concatenating so as to reduce the boilerplate
let spotName = spotNameOriginal.slice(1,-1).trim();
// Build correct selector template
let elementToClick = 'div[title="' + spotName + '"]';
jQuery(elementToClick).trigger( 'click' );
}
推荐阅读
- sql-server - 巨大的 SQL 文件中的语法错误:如何找到它?
- php - 配置 Apache2 以在新的 MacBook Pro 10.14 上工作
- php - 从 WooCommerce 电子邮件中删除订单日期
- r - 无法访问 Retrosheet 包中的 URL
- asp.net - Asp.net MVC - 输入类型=“文件”验证错误
- c++ - c ++:使用模板将任何lambda包装在另一个lambda中
- ios - IOS、ASWebAuthSession、SSO、Cordova、OAuth 应用程序多次登录需要输入凭据
- python - 如何在 Windows 上的 docker 中的 django 中运行测试期间修复“TypeError:isinstance() arg 2 must be a type or tuple of types”
- c# - Xamarin.Forms 上的音乐文件节奏和强度检测
- javascript - 如何在解构赋值语法中使用特殊字符(如连字符)?