javascript - Jquery - 通过 id 在字符串中构造 id 获取元素

标签 javascript jquery

我在使用带有 jquery 的元素时遇到了问题。我在 var 中构建名称,例如:

var myId = "#" + myGotId;

$(myId).attr("title", "changed");

$(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", "");
   } 

最佳答案

我不知道到底发生了什么,因为您没有发布太多代码,但请确保您的 Javascript 代码正在运行 after 具有您的目标“id”值的元素已包含在的DOM。如果你有这个:

<html>
  <head>
    <script>
      var myId = '#' + myGotId;
      $(myId).whatever();

那么这将不起作用,因为在您的代码运行时不会看到实际页面。

相反,试试这个:

  <script>
    $(function() {
      var myId = '#' + myGotId;
      // ...
    });

确保您的“myGotId”字符串正是您期望的值(即编码到目标元素的“id”属性中的值)也很重要。

edit 如果您认为您正在正确构建“id”,那么您可以尝试将此作为替代方法:

$(document.getElementById(myGotId)).whatever()

换句话说,您可以通过传递给 $() 函数将一个普通的 DOM 元素“包装”在一个 jQuery 对象中。如果可行,那么问题可能是您的“id”值以某种方式混淆了选择器引擎。 “id”值是否包含“.”有机会吗?

关于javascript - Jquery - 通过 id 在字符串中构造 id 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325278/

相关文章:

JavaScript 怪异 - typeof [] === typeof {} 计算结果为 'true'

javascript - 使用直接事件监听器删除项目时,事件停止冒泡到委托(delegate)事件

javascript - 使用 Jquery 自动格式化秒表时间输入

javascript/jQuery : Adding linebreak in title -- works in IE9, 但 IE8 中没有

jquery - 如何在不编辑 css 的情况下添加 fadeIn() 隐藏显示效果

单选按钮的 jquery 事件监听器

javascript - trim 和清理谷歌脚本

Javascript 数组效率低于 C++ 中的数组

javascript - Node js-类型错误: Cannot read property

javascript - Jquery 未加载