javascript - document.getElementById('').title;
5 naročnikov
5 naročnikov
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.
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
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:productblock"}
{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 $bulkaddition}
<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="openerproductpicker{$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.companyid|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: {$product.alko|string_format:"%d"} %</p>{/if}
{assign var="min_qty" value="min_qty_`$obj_id`"}
<p class="sku">Cena/kos: {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č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:",":","} €*}
{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>
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