JQuery :: Negatives To Using So Many Parent - Sibling And Children Type Functions?
Jan 25, 2011
The following function works fine. I was just wondering if there are any serious negatives to using so many parent, sibling and children type functions?
I have just written some jQuery code that had to navigate to a parent sibling then 3rd child. My code was $(this).parent().next('ul').children('li').children('span').children('input').attr('checked', 'checked'); Is there any way to optimize this I thought this would work $(this).parent().next('ul').children('li span input').attr('checked', 'checked');
I'm building a volunteer translation site. In order to constantly update only paragraphs that multiple translators are working on, I need to pass an array to PHP of A: which paragraphs are open, and B: which translations have been submitted and are visible on the user's screen. PHP will then compare this with what is in the database and tell jQuery to add new submitted translation paragraphs or remove deleted ones.I've managed to make a string of all the open Div's and have it updated every second, like this:
function cycle(){ var data = ''; $('.paragraphtobetranslated:visible').each(function(){
I need to select the last children of parent elements
For example
<ul> <li></li> <-This will have the background #1a <li></li> <-This will have the background #1a <li><ul>
[Code]....
So I would need the last children. If there is no nested element then that is considered the last child. I have to write a jquery script to apply a background to the last children. A nested element can have a nested element and then that element's children will be considered the last ones so they will get the background but not the parents of those children. If the item has no children then that item will have a background.
So there are 3 different backgrounds. Each letter a, b c will represent a lighter tone compared to the previous color. C is lighter than B, B is lighter than A etc. So this will have to be a "smart" system in which the ul li will be updated and depending if it is the last one inhierarchyit will not have the arrow.
I'm trying to manipulate items in a table using jQuery, using the parent() and children() methods of the "this" object. I think I'm not understanding how to use the parent and children methods correctly.
What I want the code to do is to show the list and button within the <td></td> when clicked on, and then hide it when the newly shown button appears.
<li>My menu item <ul> <li>my submenu item</i> <li>my submenu item</i>
[Code]...
The problem is that when the mouse goes from the main <li> to the children <li> a mouseout event is generated from the main li.
My idea is that if I can detect that the the mouseout is happening at a child of my main <li> then I should be able to stop the handler with an "if" or something.
Right now I am adding a click function to a div element on the page, it triggers a slideDown() animation. I would like it so when the user clicks on an 'a' link inside the div it does not cause the animation.
Currently it triggers the animation because the 'a' is inside the div that I have a click event for.
I tried checking inside the click function for my div element to see if 'this.tagName == 'A'' but it always says DIV, even when I click on the link.
I also tried adding a click event to all the links that stops any animations, but for some reason its not stopping the animation.[code]...
Think how twitter appends a chunk of list items to the end of the list when you load more results. I'm trying to achieve the same thing without replacing the entire parent with the same content each time 'appendRows1()'
The function needs to support any type of content - the children could be tr's li's etc.[code]...
integrating PHP-HTML-JS I'd need some help for doing the following:I have a index.php including:
<script type="text/javascript"> function filter (phrase, _id){ var words = phrase.value.toLowerCase().split(" ");
[code]....
and a child.php including a table object with the id LIST.I'd need to change the parent.php in order to filter on real-time the table LIST via the FILT input on the parent form. I have tried different values instead of 'this' on the js function calling but nothing succesfully.
I have a function, triggered when a particular type of link is clicked,which collects and inserts some text after the parent of the clicked link. This function works fine when the parent is a p tag, but I'm having trouble when the link is within a list tag. In this instance I would want the new text to be presented after the closing list item tag. How do can I distinguish whether the clicked link is within a p tag or within an li tag?
<tt>function fnGetSnippet(ni){ $.get("../scripts/ajax_fsheets.asp?id=getDD&ddID=" + ni + "&q=" + new Date().getTime(), function(responseText){ <x-tab></x-tab>
I have 2 custom JQuery files..Now the sequence in the header of the HTML file is as follows1. Jquery Library2. File 13. File 2The problem im facing is that, file two is not recognizing functions created in file one... ex..
I'm new to web programming in general, so bear with me as some of my methods may not be entirely correct. What I currently have working is I have a webpage which contains a DIV, which I am using to load another webpage via javascript(which calls itself, in order to get an auto-refreshing effect). The webpage that's being loaded is detecting if a process is currently running on the server and writing some console output while it's running, and what I want to do is stop the auto-refreshing when the process completes. (I can detect when the process stops already).I'm trying to figure out how to properly set this variable from my page that's being refreshed, since it's being loaded in a DIV I figured there has to be some way to retrieve the parent's information.
Looking at the code, you might assume (as I did) that clicking the button on page1.htm would load page2.htm. However for some reason, when calling a parent function, the function runs with the calling file's path rather than the path of the parent.
So it is actually trying to load /files/files/page2.htm! How do I force all calls to parent.function() to run with parent.hta's path as the root?
Realize that this is a simplistic example and simple solutions such as putting all the files in the same path, or dropping the "/files" in the loadPage2() function are not valid solutions.
Essentially I need to call parent.loadPage2() and have it run the function with the root path = parent.hta's path.
I am using an ASP.NET Repeater control to create N number of code patterns similar to that above. The server code leads the input controls based on DB values. I want to default the second table to be hidden if the checkbox is blank (not checked) and shown if it is checked. I also want to duplicate this behavior on the click of the checkbox.
I've made a function for getting a ID for each sibling in a tree. Lets look at this DOM: <ul> <li>Five</li> //sibling ID 1 <li>Six</li> //sibling ID 2 <li>Seven</li>//sibling ID 3 </ul>
Here is the function: function getSiblingId(elm) { return $(elm).siblings().size() -$(elm).nextAll().size() + 1; }
And here is how I use it: var id = getSiblingId($('ul li:first-child')); // id = 1 Is there a more elegant way to get the same result? The work done in the getSiblingId-function has a lot of overehead.
I have an unordered list element which has click events registered. What i want is to be able to find the nth relative sibling to the list item that is clicked. In prototype I can simply say $(elm).next(3) or $(elm).previous(3) for the 3rd sibling forwards or backwards from the current sibling.
In JQuery there doesn't seem to be a way of getting a sibling relative to the current one, other than the immediate next() or prev(). So if I want the third previous I have to do this inJQuery
I made a table with some customer information. It holds an id (hidden for the users), a company name, a phone number, an e-mail address and so on.
Inside every table row, I've made a "delete" button that should delete the relevant row in that table (see "<td class="delete">"). What I would like to do is getting the customer id that is hidden inside the first (hidden) <td> of the table row you wish to delete. I'm quite new to jQuery and I realy can't find a sollution for it. Here's my HTML [code]...
The alerts are working fine I guess. I've got something like "[object Object]" for the first alert and "object HTMLTableCellElement]" for the second alert. The other 2 testrules don't work. Firebug gave me the error message "$(this).parent().children("td")[4].text is not a function", but for now, I realy don't know what I'm doing (wrong) in those last 2 rules. Anyone who could help me out with this newbie problem about parent, child and/or sibling elements?
Trying to hide a table that's a sibling to the anchor to which theclick event is being called. It works, with any element but a tableas a sibling. My code/markup:
I'm trying to set a width of a span class based on the width of the image inside of it. I've got a container that will also have a bunch of images... some of them will have captions and will be wrapped in a class "caption"... some will not be wrapped in the "caption" class. I'm trying to loop through the container... find all the "caption" classes... and then set the width of the caption class based on the width of the image inside of it. Here's what a basic image with a caption will look like:
I'm able to look through the containing div and locate all the images and then get their width using the following:
// Find all images in the overview section var overviewImgs = $(".overview-content").find("img"); // Get the width of each image in the overview section
[code]....
I can't figure out how to loop through and find all the instances of "caption" and then set the width of the "caption" class based on the width of the image inside of it.I can find all the "caption" classes... and I can find all the images and get the image widths... but I'm not sure how to combine these two so I am only finding the images inside of the "caption" class and then setting the "caption" class width based on the width of the image inside of it. The images are added by a separate content developer and can be any size. Not all images will have captions... only the ones wrapped in the "caption" class.
I'm working with jQuery on a form where each input element is contained in an <li> element.
Some fields are read-only, identified by a class ".readonly", and I'd like to bind a jQuery function to these fields' "focus" event, to send the focus to the next input whose class is not read-only.
But, because of the containing <li> elements, I don't think .next('input') will work, since the <input> tags aren't siblings.
Is there a simple selector that will do the job without having to climb up and down the DOM via parents and children? To me that feels unsatisfactory and brittle, because should the designer decide to change the layout (lists within lists, <div>'s within <li>'s), my DOM-climbing code might break.