attributes not found by jquery attribute selector

后端 未结 2 1344
眼角桃花
眼角桃花 2021-01-12 19:00

I need to reask my old question, I probably shouldnt have asked it at 1am :P

It seems that some attributes are not being found using jquery\'s attribute selector:

相关标签:
2条回答
  • 2021-01-12 19:18

    There is no "list" of unsupported attributes because there shouldn't be; this is a bug in jQuery.

    Here are the open tickets on this:

    • Can not select a form using the action attribute
    • attr "action" of form and Selectors' attribute filter
    • selector by attribute "src" not working the same way as in 1.2.6

    Apparently the common denominator between the bugs is that jQuery is comparing the selector string you specify against the full URL as opposed to the actual action/src attribute as it is defined in the HTML. This explains why the attributeEndsWith or the attributeContains selectors do work in this case.

    I would recommend just giving the form/image a class/ID and getting it over with.

    0 讨论(0)
  • 2021-01-12 19:21

    It all depends on which jQuery version you're using.

    Before 1.3, you could use @ notation:

    $("*[@name=value]")
    

    So maybe adding @ helps.

    Other than that, you should enter the attribute value exactly the same as it's defined in the markup - e.g. if you're trying to find an image with src="http://example.com/dog.jpg", don't do this because it won't work:

    $("img[src=dog.jpg")
    

    as it will be trying to find images with src equal to "dog.jpg", not containing it.

    If you want to search attributes defining only parts of it, I'd suggest reading the jQuery API Selectors page. For example, to get all images whit src containing "dog.jpg", you could use:

    $("img[src*=dog.jpg]")
    

    Similarly, you can find elements whose attributes start or end with specific values / strings.

    0 讨论(0)
提交回复
热议问题