获取当前的jQuery选择器字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取当前的jQuery选择器字符串?相关的知识,希望对你有一定的参考价值。

调用自定义插件时,如何获取当前选择器字符串?

$('my_selector p').my_plugin();

想在我的脚本中输出my_selector p。我该如何访问这个字符串?

答案

您可以使用selector属性:

$('my_selector p').selector // my_selector p

不推荐使用的版本:1.7,删除:1.9

另一答案

选择后弃用v.7.7:

如果您只处理id和类作为选择器,则可以使用以下命令:

var selector = (typeof($(this).attr('id')) !== 'undefined' || $(this).attr('id') !== null) ? '#' + $(this).attr('id') :  '.' + $(this).attr('class');

有更简洁的方法,但由于自1.7以来由于浏览器之间的不一致而删除.selector,这是我的首选。

另一答案

被弃用,官方建议是在函数调用中添加选择器作为参数:https://api.jquery.com/selector/

需要在其插件中使用选择器字符串的插件可能需要它作为方法的参数。例如,“foo”插件可以写成

$.fn.foo = function( selector, options ) { /* plugin code goes here */ };

并且使用该插件的人会写

$( "div.bar" ).foo( "div.bar", {dog: "bark"} );

冗余,是的,​​但它总是可靠的。

另一答案
jQuery.fn.getSelector = function() {
        return this.data('selector');
};
另一答案

随着部门的弃用我使用

index = document.getElementById('category').value
select = $("#category option[value=#{index}]")[0].innerHTM

只需两行代码

或者如果你真的很便宜的线条

select = $("#category option[value=#{document.getElementById('category').value}]")[0].innerhtml
另一答案

最好的解决方法是

function mySelector(selector) {
    return $.extend($(selector),{"selector":selector});
}

这将返回经典的jquery对象,如$()所示

mySelector(".myClass")

这会返回选择器的字符串

mySelector(".myClass").selector
另一答案

扩展到kevinmicke的answer:您可以在事件对象中获取传递回调函数的选择器。

In callback functions

event.handleObj.selector

例:

您将在e.handleObj.selector中获取选择器字符串

    $( '.container' )
    .on('change', 'select.mySelector', function (e) {
        console.log(JSON.stringify(e));
        $('.selector').text(e.handleObj.selector);
        $('.value').text($(this).val());
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">

  <select class="mySelector">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </select>
  <h3>Your Selector: <span class="selector"></span></h3>
  <h3>Selected Value: <span class="value"></span></h3>
  
</div>

以上是关于获取当前的jQuery选择器字符串?的主要内容,如果未能解决你的问题,请参考以下文章

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

[ jquery选择器 :focus ] 此选择器匹配当前获取焦点的元素

jQ选择器学习片段(JavaScript 部分对应)

jquery中怎么获得当前元素的索引值

jquery中的$的特殊用法

如何在jquery中重写字符串以避免再次访问dom,并使用jquery选择器