Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过在jquery中传递选择器来访问元素?_Jquery_Selector - Fatal编程技术网

如何通过在jquery中传递选择器来访问元素?

如何通过在jquery中传递选择器来访问元素?,jquery,selector,Jquery,Selector,我想通过传递lqjmje5plsqnl258canal0lmb0来获取#chocolate_type的内容!323 作为jQuery的参数。我试过: $('#'+id).find('td:first').html(); 但它不起作用。以下是标记: <tr bgcolor="#CCCCCC" align="center" id="lqjmje5plsqnl258canal0lmb0!323"> <td id="chocolate_type">Chocolate H

我想通过传递
lqjmje5plsqnl258canal0lmb0来获取
#chocolate_type
的内容!323
作为jQuery的参数。我试过:

$('#'+id).find('td:first').html();
但它不起作用。以下是标记:

<tr bgcolor="#CCCCCC" align="center" id="lqjmje5plsqnl258canal0lmb0!323">
    <td id="chocolate_type">Chocolate Hearts</td>
    <td>2.79</td>
</tr>

巧克力心
2.79

提前感谢您的帮助。

请尝试类似以下内容:
$('tr[id='+id+']')。html()
。这对我有用。这只是样品。在您的例子中,它将变成
$('tr[id='+id+']')。find('td:first')。html()


更新:
$('#'+id)
是在id位于其他变量中时查找元素的正确方法。但是在您的情况下
导致问题并阻止其工作。

我怀疑
lqjmje5plsqnl258canal0lmb0!323对于id来说似乎不是一个好值。id值不应以数字开头,并且应避免使用特殊字符作为id值:

$('#lqjmje5plsqnl258canal0lmb0!323 #chocolate_type').html();

您也可以通过id直接获取内容:

$('#chocolate_type').html();

您的代码看起来正常,但无法使用
ID中的字符。我想这可能是您的问题

您可以使用
$('#'+id).查找('td:first')
$('td:first','#'+id)
$('#'+id+'td:first')或任何您喜欢的方法。我相信在某个地方有一个性能比较,我会看看是否能找到它


编辑:这里有一篇关于jQuery性能的非常有趣的文章,它说
find()
优于上下文:。所以,你做得对。只需更改id:)

最好以这种方式编写代码

$('tr#'+id+' td:first').html();

由于感叹号,选择器失败。如果您正在使用Firefox,请检查您的控制台,您会看到如下错误:

错误:未捕获异常:语法错误,无法识别的表达式:!323

如果可以,请从ID中删除感叹号。可在此处找到ID允许的字符:


使用
$('tr[id='+id+']')
也可以,但您确实不应该依赖于此,因为功能可能会因为未定义的行为而更改。

您的id包含无效字符。来自w3c:

ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”)


更多信息

我在构建搜索表单时遇到了同样的问题,因为我在每次提交后都使用搜索上下文构建表单来重建表单。例如,搜索“!\/\”将生成一些无效ID

对于许多简单类型的无效字符(特别是当您自动生成ID并且无法严格控制输入时),请故障切换到JavaScript:

document.getElementById(yourElementId)


我不确定使用
tr[id='+id+']
是否优化为
$('#'+id)
,但肯定不是更好
$(“#”+id)
使用本机
document.getElementById()
,这几乎是在DOM中查找元素的最快方法(请参见此处的示例:)。thnx很多…..!”问题是,将某个页面链接到未引用的信息(尽管事实证明是从W3C规范中转述出来的)似乎不如。然而是d邪恶…你的guysI被移除了但以数字开头的id会出现什么问题呢?