我在使用带有jquery的元素时遇到了麻烦.我在var中构造名称,例如:
var myId = "#" + myGotId;
$(myId).attr("title", "changed");
Run Code Online (Sandbox Code Playgroud)
$(myId)返回空.我希望通过id获取我的元素,但构建我的Id动态加入字符串.
由@Pointy编辑 - OP在评论中提供的附加代码:
var form = $('form#formDefaultValue');
$(':submit', form).click(function(event) {
event.preventDefault();
$.post(form.attr('action'), form.serialize(), function(data, status, XMLHttpRequest) {
if (status == 'success') {
$("#msgInformation").html("Your changes have been successfully saved.");
jQuery("#spanDefaultValue").attr("class", "db");
var g = indexNodeSelected;
g = g.replace("\\", "\\\\\\\\");
$('#'+ g).find("span").attr("class", "");
}
Run Code Online (Sandbox Code Playgroud)
Poi*_*nty 22
我不确切知道发生了什么,因为你没有发布很多代码,但确保你的Javascript代码在DOM中包含目标"id"值的元素之后运行.如果你有这个:
<html>
<head>
<script>
var myId = '#' + myGotId;
$(myId).whatever();
Run Code Online (Sandbox Code Playgroud)
然后这将无法工作,因为代码运行时将不会看到实际的页面.
相反,试试这个:
<script>
$(function() {
var myId = '#' + myGotId;
// ...
});
Run Code Online (Sandbox Code Playgroud)
确保您的"myGotId"字符串正是您期望的值(即,编码到目标元素的"id"属性中的值)也很重要.
编辑如果您认为您正确构建了"id",那么您可以尝试将其作为替代方案:
$(document.getElementById(myGotId)).whatever()
Run Code Online (Sandbox Code Playgroud)
换句话说,只需传递给$()函数,就可以将一个普通的DOM元素"包装"在jQuery对象中.如果这样做,那么问题可能是你的"id"值在某种程度上混淆了选择器引擎."id"值是否包含"." 在任何情况下?
| 归档时间: |
|
| 查看次数: |
40886 次 |
| 最近记录: |