jQuery 如何通过 ID 选择器 获取动态ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery 如何通过 ID 选择器 获取动态ID相关的知识,希望对你有一定的参考价值。

使用Jquery获取某个div时需要这样写:$("#" + 所定义的id变量名)代码如下黑体加粗部分:

<div id="hospital.id + 'hospital'" class="z_tl z_t2 clearfix z_poaR" 

ng-click="openDoctorList(hospital.id,hospital.name)">

$scope.openDoctorList = function (id,hospitalName)

$scope.uniqueHospitalId = id;
var hospitalId = id + "hospital";
if($scope.cacheHospitalId != id)
  $("#"+hospitalId).attr("class","z_tl clearfix z_poaR");

if($scope.cacheHospitalId == id)
$("#"+hospitalId).attr("class","z_tl z_t2 clearfix z_poaR");
$scope.doctorList = null;

$scope.cacheHospitalId = id;

扩展资料:

jQuery是一个快速、简洁的javascript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化html文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

参考资料:

Jquery官方API -ID Selector (“#id”)

JQuery官方API接口-.attr()

百度百科-JQuery




参考技术A

使用Jquery获取某个div时需要这样:前台使用EL进行迭代LIST生成div,为其添加动态的id,生成之后变成下面样式

<div id="tz-1"></div>

<div id="tz-2"></div>

<div id="tz-3"></div>

<div id="tz-4"></div>

<div id="tz-5"></div>

<div id="tz-6"></div>

注意:我们在使用Jquery获取某个div时需要这样写

$("#" + 所定义的id变量名);

而不能写成这样

$("#所定义的id变量名");

扩展资料:

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

ID选择器:选择具有给定id属性的单个元素。

对于id选择器,jQuery使用JavaScript函数document.getElementById(),这是非常有效的。当另一个选择器连接到id选择器时,如H2#页滴,jQuery在将元素标识为匹配之前执行额外的检查。

呼叫jQuery()(或$()),以id选择器作为其参数,将返回一个jQuery对象,该对象包含一个包含0或一个DOM元素的集合。

各ID值只能在文档中使用一次。如果已为多个元素分配了相同的ID,则使用该ID的查询只会选择DOM中的第一个匹配元素。但是,不应依赖此行为;使用相同ID的多个元素的文档无效。

如果id包含像句点或冒号这样的字符,则必须用反斜杠转义那些字符.

参考资料:

百度百科 jQuery

Jquery官方API -ID Selector

参考技术B 第一种方式:$("#" + 动态变量 );
第二种方式:可以把div的选择符放进按钮(或其他的控件都可以,只要能获取到属性值就可以)的某个属性里去。
例如:.在click事件里面获取属性值,var div = $('button').attr('rel'),然后$(div)就可以。
参考技术C $("#id"+num) num动态生成数字 结果就是$("#id1") $("#id1")类似这样本回答被提问者和网友采纳 参考技术D var pdid = 'postDetail' + i;
$("#" + pdid + "")

如何使用jquery生成动态输入并通过id获取值

【中文标题】如何使用jquery生成动态输入并通过id获取值【英文标题】:how to generate dynamic input and get the value by id using jquery 【发布时间】:2018-02-10 13:34:16 【问题描述】:

实际上我有一个表单,我在输入框中输入名称、html 页面名称并将其保存到数据库中。这里我遇到了一些问题

    我可以生成输入框,但是如何获取那个输入框的值呢?

    如何获取在动态框中输入的输入框的动态值并将其发送到发布请求,因为我知道如何发送多个静态输入框值请求我们如何发送它。

下面是我的代码

    <div class="input_fields_wrap">
    <button class="add_field_button">Add More Fields</button>
    <div><input type="text" name="mytext[]"></div>
</div>



 $(document).ready(function() 
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count
    $(add_button).click(function(e) //on add input button click
        e.preventDefault();
        if(x < max_fields) //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
        
    );

    $(wrapper).on("click",".remove_field", function(e) //user click on remove text
        e.preventDefault(); $(this).parent('div').remove(); x--;
    )
);

ithin上面我可以生成动态输入框,可以删除它但无法获取值,所以如何使用id生成并将所有动态生成的值发布到数据库中

【问题讨论】:

您能告诉我们您是如何尝试获取这些值的吗?如果你不告诉我们很难说有什么问题...... 【参考方案1】:

另一种方式,在表单中添加以下按钮:

<button class="getValue">Get Field Values</button>

在加载时在 JS 中添加以下按钮点击事件:

$(getValue).click(function (e) 
   e.preventDefault();
   let fieldValues = "";
   $("input").each(function(i,e)
     fieldValues = fieldValues == "" ? $(e).val() : fieldValues + ", " + $(e).val();
   )
   alert(fieldValues);
);

【讨论】:

【参考方案2】:

可以试试这样的

var inputField = $('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>');
$(wrapper).append(inputField);

然后您可以将事件附加到该变量。

inputField.on('change', 'input', function() 
    var value = $(this).val();
    console.log(value);
);

希望对你有帮助:)

【讨论】:

【参考方案3】:

您可以像这样使用 jquery #map() 函数:

var list = wrapper.find('input').map(function() 
  return $(this).val();
).get();

当您想要提交 列表 值发送到服务器时 - 请参阅下面的演示:

$(document).ready(function() 
  var max_fields = 10; //maximum input boxes allowed
  var wrapper = $(".input_fields_wrap"); //Fields wrapper
  var add_button = $(".add_field_button"); //Add button ID

  var x = 1; //initlal text box count
  $(add_button).click(function(e)  //on add input button click
    e.preventDefault();
    if (x < max_fields)  //max input box allowed
      x++; //text box increment
      $(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
    
  );

  $(wrapper).on("click", ".remove_field", function(e)  //user click on remove text
    e.preventDefault();
    $(this).parent('div').remove();
    x--;
  );

  /* ADDED THIS */
  $('.submit').click(function() 
    var list = wrapper.find('input').map(function() 
      return $(this).val();
    ).get();
    // send to server here
    console.log(list);
  );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input_fields_wrap">
  <button class="add_field_button">Add More Fields</button>
  <div><input type="text" name="mytext[]"></div>
</div>
<button class="submit">Submit</button>

【讨论】:

以上是关于jQuery 如何通过 ID 选择器 获取动态ID的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 jquery 中的选择器删除动态类?

如何通过类、id、选择器和属性获取 DOM 元素

jQuery 不选择具有动态 ID 的元素,如何做到这一点?

如何使用 jquery 选择器获取没有 id 的内部 div

JQuery通过类选择器捕获click事件获取当前点击对象的id

jQuery基础--样式篇