javascript - document.getElementById('').title;

Zdravo,

Imam foreach zanko za prikaz izdelkov (skupaj jih prikaže 12 na stran). Vmes je tudi ta povezava:

<a href="#" id="title" title="{$product.company_id|fn_get_company_name}" onclick="showDiv()">{$product.company_id|fn_get_company_name}<br /></a>

Nato pa v js funkciji naredim tole:

function showDiv() {
   document.getElementById('dobavitelj').style.display = "block";
   var url = document.getElementById('title').title;

     $("#testt").text(url);

}

Vse dela ok in prav, lepo prikaže izbrani div, a title od href linka pa vedno pokaže le od prvega generiranega. Recimo dobavitelji so 1,2,3,4,...In ob kliku na posamezno številko(dobavitelja) vedno pokaže v div-u testt le številko 1, se pravi prvega generiranega...

Bi znal kdo svetovati kako dobiti te podatke? Ali pa kak drug način, kako lahko dobim title od posameznega, kliknjenega linka?

Hvala za pomoč

17 odgovorov

Ne me za besedo držat samo mislim, da je problem ker mora biti samo en element z enakim id-jem, drugače HTML ni valid. Verjetno zato tudi getElementById dela tako, da vrne samo en element. Poglej spodnjo povezavo.

StackOverflow

Lahko probaš takole:

HTML:

<a href="#" class="title" title="{$product.company_id|fn_get_company_name}" >{$product.company_id|fn_get_company_name}</a><br />

JS:

$('.title').click(function(){
    var self = $(this),
         url = self.attr('title');

    $("#testt").text(url);

    return false;
})

Poglej, če je to kar si mislil:
Fiddle

2

Hmmm...zanimivo!, probam pa javim.

Hvala!

Nop...na fiddlu je ok, in dela, pri meni ne(še)....hmmm

Res nimam pojam :(

A ti v konzli javi kakšno napako. Lahko prilepiš generiran source, mogoče bo kaj več jasno. Verjetno je čist simpl napaka nekje.

Ok, takole je:
Soure od izdelkov (ne cel...samo foreach)
{foreach from=$products item=product key=key name="products"}
{capture name="captoptionsvsqty"}{/capture}
{hook name="products:product
block"}
{assign var="objid" value=$product.productid}
{assign var="objidprefix" value="$obj_prefix$product.product_id"}
{include file="commontemplates/productdata.tpl" product=$product min_qty=true}

<div class="product-container list clearfix">
{assign var="formopen" value="formopen`$objid`"}
{$smarty.capture.$formopen}
{if $bulk
addition}
<div class="float-right">
<input class="cm-item" type="checkbox" id="bulk_addition_{$obj_prefix}{$product.product_id}" name="product_data[{$product.product_id}][amount]" value="{if $js_product_var}{$product.product_id}{else}1{/if}" {if ($product.zero_price_action == "R" && $product.price == 0)}disabled="disabled"{/if} />
</div>
{/if}
{assign var="currenturl" value=$config.currenturl|urlencode}
<div class="float-left product-item-image center">
<span class="cm-reload-{$obj_prefix}{$obj_id} image-reload" id="list_image_update_{$obj_prefix}{$obj_id}">

            <a id="opener_product_picker_{$product.product_id}" class="cm-dialog-opener cm-dialog-auto-size" rev="product_quick_view_{$product.product_id}" href="{"products.quick_view?product_id=`$product.product_id`&prev_url=`$current_url`"|fn_url}">
            <input type="hidden" name="image[link]" value="{"products.view?product_id=`$product.product_id`"|fn_url}" />


        <input type="hidden" name="image[list_image_update_{$obj_prefix}{$obj_id}][data]" value="{$obj_id_prefix},{$settings.Thumbnails.product_lists_thumbnail_width},{$settings.Thumbnails.product_lists_thumbnail_height},product" />
        {include file="common_templates/image.tpl" image_width=$settings.Thumbnails.product_lists_thumbnail_width obj_id=$obj_id_prefix images=$product.main_pair object_type="product" show_thumbnail="Y" image_height=$settings.Thumbnails.product_lists_thumbnail_height}


            </a>
    {include file="views/products/components/quick_view_link2.tpl"}
    <!--list_image_update_{$obj_prefix}{$obj_id}--></span>

    {assign var="rating" value="rating_$obj_id"}
    {$smarty.capture.$rating}
</div>

{$smarty.get.page}
<div class="product-info2">
<div class="desno">
{if $jsproductvar}
<input type="hidden" id="product_{$obj_prefix}{$product.product_id}" value="{$product.product}" />
{/if}
{if $itemnumber == "Y"}<strong>{$smarty.foreach.products.iteration}. </strong>{/if}
{assign var="name" value="name
$objid"}
<a id="opener
productpicker{$product.productid}" class="cm-dialog-opener cm-dialog-auto-size" rev="productquickview{$product.productid}" href="{"products.quickview?productid=`$product.productid&prev_url=$currenturl`"|fnurl}"><h2 style="font-size:17px; font-weight:bold;"><div class="velika">{$product.product}</div>{if $product.litri == 0.00}{assign var="teza" value=$product.weight1000}{if $teza > 900}{$product.weight|number_format:2:",":"."} Kg{elseif $teza == 0}{else} {$teza} g{/if}{else}{assign var="litra" value=$product.litri1000}{if $litra > 500}{$product.litri|numberformat:2:",":"."} l{elseif $litra == 0}{else} {$litra} ml{/if}{/if}<!--, pakiranje: {if $product.qtystep == 0}1 kos{else} {$product.qtystep} {if $product.qtystep == 1}kos{/if}{if $product.qtystep == 2} kosa{/if}{if $product.qtystep == 3} kosi{/if}{if $product.qtystep == 4} kosi{/if}{if $product.qtystep > 4} kosov{/if}{/if} --> </h2></a>
{if $product.znamka}<p class="sku">Blagovna znamka: {$product.znamka}</p>{/if}
{assign var=dobavitelj value=$product.companyid scope="global"}
<p class="sku">Dobavitelj: <a href="#" class="title" title="{$product.company
id|fngetcompanyname}" value="{$product.companyid}" onclick="showDiv()">{$product.companyid|fngetcompanyname}<br /></a></p>

     {assign var="i" value=$i+1}
        {assign var="rating" value="rating_`$obj_id`"}{$smarty.capture.$rating}
        {assign var="sku" value="sku_$obj_id"}{$smarty.capture.$sku}

        {assign var="old_price" value="old_price_`$obj_id`"}
                  {if $product.alko != 0}<p class="sku">Vsebnost alkohola:&nbsp;{$product.alko|string_format:"%d"} &#37;</p>{/if}
        {assign var="min_qty" value="min_qty_`$obj_id`"}

        <p class="sku">Cena/kos:&nbsp;{assign var="price" value="price_`$obj_id`"}{if $smarty.capture.$old_price|trim}{$smarty.capture.$old_price}{/if}{$smarty.capture.$price}</p>
        {$smarty.capture.$min_qty}
         {assign var="qty" value="qty_`$obj_id`"}
                {if $product.qty_content}
                <div class="qty chabger">
                            <label for="product_data[{$obj_id}][amount]">Koli&#269;ina:</label>
                            <select name="product_data[{$obj_id}][amount]" id="qty_count_{$obj_prefix}{$obj_id}">
                            {assign var="a_name" value="product_amount_`$obj_prefix``$obj_id`"}
                            {assign var="selected_amount" value=true}
                            {foreach name="`$a_name`" from=$product.qty_content item="var"}
                             <option value="{$var}" {if $product.selected_amount && ($product.selected_amount == $var || ($smarty.foreach.$a_name.last && !$selected_amount))}{assign var="selected_amount" value=true}selected="selected"{/if}>{$var}</option>
                            {/foreach}
                            </select>
                            </div>
                            {else}
              {$smarty.capture.$qty}
                {/if}
        {assign var="clean_price" value="clean_price_`$obj_id`"}
        <h2 style="font-weight:bold;"><b>{assign var="price" value="price_`$obj_id`"}</b></h2>
        {assign var="list_discount" value="list_discount_`$obj_id`"}
        {assign var="discount_label" value="discount_label_`$obj_id`"}


        <div class="{if $smarty.capture.$old_price|trim || $smarty.capture.$clean_price|trim || $smarty.capture.$list_discount|trim}prices-container {/if}price-wrap clearfix">
        {if $smarty.capture.$old_price|trim || $smarty.capture.$clean_price|trim || $smarty.capture.$list_discount|trim}
            <div class="float-left product-prices">

        {/if}

        {if !$smarty.capture.$old_price|trim || $details_page}<p class="actual-price">{/if}
            {assign var=kolicina value=$product.min_qty}

    {*{if $kolicina ==0}{assign var=cena value=$product.price*$product.qty_step}{else}{assign var=cena value=$product.price*$product.min_qty}{/if}{$cena|number_format:2:",":","}&nbsp;&euro;*}
        {if !$smarty.capture.$old_price|trim || $details_page}</p>{/if}

        {if $smarty.capture.$old_price|trim || $smarty.capture.$clean_price|trim || $smarty.capture.$list_discount|trim}
                {$smarty.capture.$clean_price}
                {$smarty.capture.$list_discount}
            </div>
        {/if}
        {if $show_discount_label && $smarty.capture.$discount_label|trim}
            <div class="float-left">
            <br />
                {$smarty.capture.$discount_label}
            </div>
        {/if}
        </div>

        {if $capture_options_vs_qty}{capture name="product_options"}{/if}

        {assign var="product_amount" value="product_amount_`$obj_id`"}
        {$smarty.capture.$product_amount}

        {assign var="product_options" value="product_options_`$obj_id`"}
        {$smarty.capture.$product_options}

        {assign var="advanced_options" value="advanced_options_`$obj_id`"}
        {$smarty.capture.$advanced_options}
        {if $capture_options_vs_qty}{/capture}{/if}



        {assign var="product_edp" value="product_edp_`$obj_id`"}
        {$smarty.capture.$product_edp}

        {if $capture_buttons}{capture name="buttons"}{/if}

            <div class="buttons-container">

                {if $show_details_button}
                    {include file="buttons/button.tpl" but_href="products.view?product_id=`$product.product_id`" but_text=$lang.view_details but_role="submit"}
                {/if}

<div class="desno-1">
{assign var="addtocart" value="addtocart`$objid`"}
{$smarty.capture.$addtocart}

                {assign var="list_buttons" value="list_buttons_`$obj_id`"}
                {$smarty.capture.$list_buttons}

</div>

            </div>
        {if $capture_buttons}{/capture}{/if}

        {assign var="form_close" value="form_close_`$obj_id`"}
        {$smarty.capture.$form_close}

        {if $show_product_tabs}
        {include file="views/tabs/components/product_popup_tabs.tpl"}
        {$smarty.capture.popupsbox_content}
        {/if}
    </div>
{if $bulk_addition}
<script type="text/javascript" class="cm-ajax-force">
//<![CDATA[
$(function(){$ldelim}
    $('#opt_' + '{$obj_prefix}{$product.product_id}').switchAvailability(true, false);
{$rdelim});
//]]>
</script>
{/if}
{assign var="form_close" value="form_close_`$obj_id`"}
{$smarty.capture.$form_close}
</div>

</div>
{if !$smarty.foreach.products.last}
<hr />
{/if}
{/hook}
{/foreach}

In pa še javascript:

function showDiv() {
document.getElementById('dobavitelj').style.display = "block";
}

$('.title').click(function(){

var self = $(this),
     url = self.attr('title');

$("#testt").text(url);

return false;

})

Ter še div ki ga pokaže in znotraj tega div kjer naj bi izpisal title:

<div id="dobavitelj" style="display:none;">
<div class="product-container" id="testt">

</div>

</div>

Evo, sedaj je takole, pokaže mi lepo div id=dobavitelj, a v id=testt ne doda ničesar...

A jQuery imaš includan? Glede na to, da si v prvem postu pisal native javascript, @s1l3 je pa prilepil jQuery kodo.

Težko rečem, dejansko zgleda vse na prvi pogled ok. Poskusi počasi debugat. Prvo lahko probaš če se dejansko click funkcija izvede. V click funkcijo daj

console.log('klik");

in poglej v konzoli če ti izpiše kaj. Če je to OK, bi ti predlagal da vsako spremenljivko v funkciji logiraš v konzolo in vidiš kaj se zgodi.

To verjetno delaš lokalno, nimaš kakšne povezave da bi jo lahko delil

Imam..., v drugi datoteki so includani
edit: imam povezavo: http://beta.dobavi.si/brezalkoholne-pijace/

Potem je pa potrebno klikniti v posameznem izdelku na ime dobavitelja. Zgoraj bi potem moralo samo napisat njegovo ime, tam kjer se sedaj odpre prazno okno